17370845950

JavaScript数组如何操作_有哪些常用方法?
JavaScript数组操作核心是增删改查与遍历转换,分不改变原数组(如map、filter、slice)和改变原数组(如push、pop、splice、reverse、sort)两类;添加删除用push/pop/unshift/shift/splice;查找用indexOf/includes/find/findIndex;遍历转换用forEach/map/filter/reduce;其他有concat/join/reverse/sort等。

JavaScript数组操作核心在于增删改查和遍历转换,常用方法分两类:不改变原数组(返回新数组或值),和改变原数组(会修改原始数据)。

添加与删除元素

向数组末尾添加用 push(),删除末尾用 pop();向开头添加用 unshift(),删除开头用 shift()。这些方法都直接修改原数组,返回值是操作后的数组长度(push/unshift)或被删的元素(pop/shift)。

  • push(1, 2) → 在末尾加多个元素
  • splice(1, 0, 'a', 'b') → 从索引1开始删0个、插入'a'和'b'
  • splice(2, 1) → 删除索引2处的1个元素(原数组被改)

查找与判断

indexOf()lastIndexOf() 返回首次/末次匹配索引,没找到返回-1;includes() 返回布尔值,更直观判断是否存在;find()findIndex() 接收回调函数,适合按条件查找第一个匹配项。

  • arr.includes('apple') → 比 arr.indexOf('apple') !== -1 更简洁
  • arr.find(x => x > 10) → 返回第一个大于10的元素(或undefined)
  • arr.findIndex(x => x.name === 'Tom') → 返回匹配对象的索引

遍历与转换

forEach() 仅遍历,无返回值;map() 遍历并返回每个元素处理后的新数组;filter() 返回满足条件的元素组成的新数组;reduce() 累积计算,常用于求和、扁平化、分组等。

  • nums.map(x => x * 2) → [1,2,3] → [2,4,6]
  • list.filter(item => item.active) → 筛出所有active为true的对象
  • arr.reduce((sum, cur) => sum + cur, 0) → 求数组总和

其他实用方法

slice() 截取子数组(不改原数组,类似字符串substring);concat() 合并数组(返回新数组);join() 转为字符串(指定分隔符);reverse()sort() 会改变原数组,注意 sort 默认按字符串排序,数字排序要传比较函数:(a, b) => a - b

  • arr.slice(1, 4) → 取索引1到3(不含4)的元素
  • ['a'].concat(['b'], ['c']) → ['a','b','c']
  • [1,2,3].join('-') → "1-2-3"

基本上就这些。用对方法的关键是看是否需要修改原数组、是否需要返回新数组、以及是否要按条件处理——记清每个方法的“副作用”和返回值类型,就不容易踩坑。