JavaScript数组常用方法分三类:遍历方法(如forEach、map、filter)不修改原数组;增删改查方法(如push、splice、slice)部分改变原数组;转换聚合方法(如join、reduce、sort)用于格式转换或计算。

JavaScript 数组提供了丰富的方法来遍历、查询、修改和转换元素,掌握常用方法能显著提升开发效率。关键不在于记全所有 API,而在于理解每类方法的用途、是否改变原数组、返回值类型以及典型使用场景。
常用遍历方法(不修改原数组)
这些方法用于逐个访问元素,适合读取、判断或生成新数据:
- forEach():纯遍历,无返回值,不能用 break 中断(可用 return 跳过当前循环)
- map():对每个元素执行操作,返回一个新数组,长度与原数组一致
- filter():筛选满足条件的元素,返回新数组,长度 ≤ 原数组
-
find() / findIndex():返回第一个匹配项或其索引,找不到时分别返回
undefined或-1 -
some() / every():返回布尔值,
some表示“至少一个为真”,every表示“全部为真”
增删改查与结构操作
这类方法直接影响数组本身或其结构,需注意是否改变原数组:
- push() / pop():尾部添加/删除,返回新长度 / 被删元素
- unshift() / shift():头部添加/删除,性能略低(需重排索引),返回新长度 / 被删元素
- splice(start, deleteCount, ...items):从指定位置删除并可插入新元素,直接修改原数组,返回被删除的元素组成的数组
- slice(start, end):浅拷贝部分元素,不修改原数组,常用于截取或复制
-
indexOf() / lastIndexOf():查找元素首次/末次出现的索引,未找到返回
-1
转换与聚合操作
用于将数组转为其他格式,或计算汇总值:
立即学习“Java免费学习笔记(深入)”;
-
join(separator):用指定分隔符拼接成字符串,如
[1,2,3].join('-')→"1-2-3" -
reduce((acc, cur) => ..., initialValue):累计计算,常见于求和、扁平化、分组等,
acc是累加器,cur是当前项 -
flat(depth):扁平化嵌套数组,默认 depth=1,
flat(Infinity)可完全展开 -
sort((a,b) => ...):原地排序,注意默认按字符串 Unicode 排序,数字排序需传入比较函数,如
(a,b) => a - b
实用小技巧与注意事项
避免常见误区,让操作更可靠:
- 修改原数组的方法(如
push、splice、sort)要谨慎,在函数式编程或状态管理中优先选不可变方式(如concat、[...arr]、map) -
for...of比传统for循环更简洁,适合纯遍历;for循环适合需要索引或复杂控制逻辑的场景 - 空位数组(如
[1, , 3])中,forEach、map等方法会跳过空位,但for循环不会 - 判断是否为数组用
Array.isArray(arr),不要依赖typeof(返回"object")











