JavaScript 中数组的常用操作方法有很多,以下是一些常见的、功能强大的数组方法及其用途和示例:

90 阅读3分钟

JavaScript 中数组的常用操作方法有很多,以下是一些常见的、功能强大的数组方法及其用途和示例:


一、遍历与查找类

方法名返回值类型描述
find()元素或 undefined查找第一个满足条件的元素
findIndex()索引或 -1查找第一个满足条件的元素索引
indexOf()索引或 -1查找某个第一次出现的位置(严格相等)
lastIndexOf()索引或 -1查找某个最后一次出现的位置
includes()布尔值判断数组是否包含某个

示例:

const arr = [10, 20, 30, 40];

arr.find(item => item > 25); // 30
arr.findIndex(item => item > 25); // 2
arr.indexOf(30); // 2
arr.includes(20); // true

二、过滤与映射类

方法名返回值类型描述
filter()新数组过滤出所有满足条件的元素
map()新数组对每个元素进行处理并返回新数组
reduce()单个值累积计算(如求和、对象合并等)

示例:

const nums = [1, 2, 3];
nums.filter(n => n % 2 === 0); // [2]
nums.map(n => n * 2); // [2, 4, 6]
nums.reduce((acc, n) => acc + n, 0); // 6

三、判断类

方法名返回值类型描述
some()布尔值是否有至少一个元素满足条件
every()布尔值所有元素是否都满足条件

示例:

const ages = [18, 20, 16];

ages.some(age => age < 18); // true
ages.every(age => age >= 18); // false

四、聚合与排序类

方法名返回值类型描述
sort()排序后的原数组对数组进行排序(默认按字符串顺序)
reduceRight()单个值从右到左累积计算
join()字符串将数组转为字符串,可指定连接符

示例:

[3, 1, 2].sort(); // [1, 2, 3]
[1, 2, 3].reduce((acc, val) => acc + val); // 6
['a', 'b', 'c'].join('-'); // "a-b-c"

五、新增/删除/截取类

方法名返回值类型描述
slice(start, end)新数组截取部分元素,不修改原数组
splice(index, deleteCount, ...items)被删除的数组删除或添加元素,会修改原数组
push(...items)新长度添加元素到末尾
pop()被移除的元素移除最后一个元素
shift()被移除的元素移除第一个元素
unshift(...items)新长度添加元素到开头

示例:

let arr = [1, 2, 3];
arr.push(4); // arr => [1, 2, 3, 4]
arr.pop(); // 4, arr => [1, 2, 3]
arr.slice(0, 2); // [1, 2],原数组不变
arr.splice(1, 1, 'a'); // [2], arr => [1, 'a', 3]

六、其他实用方法

方法名返回值类型描述
forEach()undefined遍历数组执行函数,无返回值
flat()扁平化后的新数组将嵌套数组扁平化
flatMap()扁平化后的新数组map + flat 的组合
keys() / values() / entries()迭代器获取键、值、键值对迭代器

示例:

[1, [2, [3]]].flat(); // [1, 2, [3]]
[1, [2, [3]]].flat(2); // [1, 2, 3]

[1, 2].flatMap(x => [x * 2]); // [2, 4]

总结建议:

  • 查找元素:优先使用 find / findIndex
  • 判断是否存在:使用 some / includes
  • 转换数据结构:使用 map
  • 筛选数据:使用 filter
  • 统计/合并数据:使用 reduce
  • 排序/截取/增删元素:使用 sort / slice / splice / push/pop

这些方法在 Vue 组件中常用于处理表格数据、标签匹配、状态管理等场景。