JavaScript 数组方法总结

63 阅读1分钟

✅ 不改变原数组(返回新数组)

方法功能说明
map()映射,返回每一项处理后的新数组
filter()过滤符合条件的项,返回新数组
slice()截取数组的一部分,返回新数组
concat()合并数组,返回一个新数组
flat()扁平化嵌套数组,返回新数组
includes()判断是否包含指定元素,返回布尔值
find() / findIndex()查找元素 / 索引,返回查找到的结果或索引(未找到返回 undefined / -1)
every() / some()判断是否所有 / 有一项符合条件,返回布尔值
toSorted() / toReversed() / toSpliced()ES2023:排序 / 反转 / 剪切,不改原数组,返回新数组

❌ 改变原数组(直接修改)

方法功能说明
push() / pop()向尾部添加 / 删除元素
shift() / unshift()向头部删除 / 添加元素
splice()增删改任意位置的元素
sort()排序,改变原数组
reverse()反转数组
fill()用某值填充数组指定范围
copyWithin()复制一段到数组的另一个位置,覆盖原内容

🔁 特殊说明:forEach

方法改变原数组返回新数组说明
forEach()否(本身不改结构)用于遍历每项,执行副作用操作(打印、赋值等)

注意事项:

  • forEach 自身不会修改数组结构,但如果数组元素是引用类型(如对象),在回调中修改它们会影响原数组。
  • 不支持 break 或 return,中途不能中断循环。
  • 不适合链式处理,可用 for / for...of 替代。

示例:

const arr = [1, 2, 3];

// ❌ 这样写不会变
arr.forEach((item) => item + 1);
console.log(arr); // [1, 2, 3]