JavaScript中数组常用的一些方法汇总

8 阅读2分钟
方法名是否改变原数组返回值类型核心用途典型场景关键特点
filter❌ 否新数组(满足条件的元素)批量筛选元素筛选列表中符合条件的数据(如价格 > 100 的商品)遍历全部元素,返回所有匹配项
map❌ 否新数组(转换后的元素)统一转换数组元素格式接口数据格式化(如提取数组对象的某字段)遍历全部元素,一一映射转换
find❌ 否单个元素 /undefined查找第一个匹配的元素根据 ID 查找列表中的单个对象找到后立即终止遍历,效率高于filter
reduce❌ 否任意类型(累加 / 合并值)数据聚合计算求和、统计元素出现次数、对象合并灵活度最高,可替代sum/count等场景
forEach❌ 否undefined单纯遍历执行操作批量打印、DOM 渲染(如遍历数组生成列表)无返回值,仅执行副作用
sort✅ 是排序后的原数组数组排序数字升 / 降序、按对象属性排序(如按年龄排序)默认按字符串排序,需传比较函数
slice❌ 否新数组(指定区间元素)截取子数组 / 数组分页分页加载(如取第 1 页数据:slice (0,10))支持负索引(如 slice (-2) 取最后 2 个元素)
some❌ 否布尔值(true/false)判断数组是否至少有一个元素满足条件检查列表是否有已选中的项、是否包含负数找到第一个匹配项后立即终止遍历
every❌ 否布尔值(true/false)判断数组所有元素是否都满足条件校验表单数组所有项是否必填、所有数字是否为正只要有一个不满足就终止遍历,返回 false
includes❌ 否布尔值(true/false)判断数组是否包含指定值(严格相等 ===)检查数组是否有某个值、权限列表是否包含某权限支持指定起始查找索引(第二个参数)

小总结:如果是查找,查找是否有元素用includes,查找是否有符合条件的,用some,查找是否都符合条件,用every;如果是想查找是否有符合条件的,还想返回查找的元素,用find(find只会查找第一个匹配的元素,如果想将符合条件的元素都返回,用filter)