前端数组操作

JavaScript数组是前端开发中最常用的数据结构之一,下面我将详细介绍数组的创建、操作和常用方法。


一、数组创建方式

  1. 字面量创建‌(最常用方式):

var arr1 = []; // 空数组var arr2 = [1, 2, 3]; // 带初始值
  1. 构造函数创建‌:

var arr3 = new Array(); // 空数组var arr4 = new Array(4); // 长度为4的空数组var arr5 = new Array(15, 16, 17); // 带初始值

ES6新增的Array.of()‌:

let arr6 = Array.of(1, 2); // [1, 2]let arr7 = Array.of(3); // [3]


二、数组基本操作方法

增删元素方法

  1. push()‌ - 末尾添加元素,返回新长度

const arr = [1, 2, 3];arr.push(4, 5); // [1, 2, 3, 4, 5]
  1. pop()‌ - 删除并返回最后一个元素

const last = arr.pop(); // 5, arr变为[1, 2, 3, 4]

      unshift()‌ - 开头添加元素,返回新长度

arr.unshift(0); // [0, 1, 2, 3, 4]

     shift()‌ - 删除并返回第一个元素

const first = arr.shift(); // 0, arr变为[1, 2, 3, 4]

‌     splice()‌ - 指定位置增删元素

// 从索引1开始删除2个元素,并插入'a','b'arr.splice(1, 2, 'a', 'b'); // [1, 'a', 'b', 4]

其他常用方法

‌concat()‌ - 合并数组,不改变原数组

const newArr = arr.concat([5, 6]); // [1, 'a', 'b', 4, 5, 6]

join()‌ - 数组转字符串

const str = arr.join('-'); // "1-a-b-4"

slice()‌ - 截取子数组

const subArr = newArr.slice(1, 3); // ['a', 'b']

reverse()‌ - 反转数组

newArr.reverse(); // [6, 5, 4, 'b', 'a', 1]

三、高阶数组方法

  1. map()‌ - 映射新数组

  2. const ids = tableData.map(v => v.id); // 提取id数组

    filter()‌ - 过滤数组

  const nums = [1, 2, 3, 4].filter(n => n > 2); // [3, 4]

‌     forEach()‌ - 遍历数组

  nums.forEach(n => console.log(n));

     find()/findIndex()‌ - 查找元素/索引

  const found = nums.find(n => n === 3); //3

四、数组使用场景

  1. 格式化后端数据

  2. const formatted = rawData.map(item => ({  ...item,  yearMonth: item.date.split('-').slice(0, 2).join('-')}))
  3. 实现栈和队列

  4. 栈:push()/pop()

  5. 队列:push()/shift()

      数据转换

  const typeMap = {aaa: "审核通过", bbb: "审核不通过"};   const formattedType = rawType.map(v => typeMap[v] || v);


标签:

相关文章

Flutter有哪些常用的UI组件?

Flutter 提供了丰富且强大的 UI 组件,这些组件可以帮助开发者快速构建美观且功能丰富的用户界面。以下是一些 Flutter 中常用的 UI 组件,按照功能和用途进行了分类归纳:基础组件‌Con...

Vue简版 教程

一、安装与项目创建‌CDN 引入(适合快速体验)‌通过 <script> 标签直接引入 Vue3 的 ES 模块构建版本:<div id="a...

前端面向对象

在前端开发中,“面向对象”思想的应用主要集中在代码组织、组件设计和架构模式等方面。以下是前端面向对象开发的核心概念和实践:‌1. 面向对象的核心概念‌‌封装‌:将数据(属性)和操作数据的方法(行为)捆...

弱类型比较(==)与严格比较(===)

PHP弱类型比较(==)与严格比较(===)在前端开发中同样需要警惕,以下是关键差异和防范建议:一、核心差异对比比较方式类型处理示例结果(前端场景)风险场景==自动类型转换'2' ==...

前端模块化

以下是关于前端模块化的系统化解析,结合技术演进与核心规范进行结构化呈现:‌一、模块化演进历程‌‌原始阶段(全局污染)‌通过<script>标签引入JS文件,存在全局命名冲突和依赖管理混乱问...

前后端交互是Web开发中连接用户界面与服务器逻辑的关键环节

前后端交互是Web开发中连接用户界面与服务器逻辑的关键环节,主要通过HTTP协议实现数据交换‌以下是核心交互方式及原理的总结:一、基础交互方式‌RESTful API‌基于HTTP协议(GET/POS...