🟨

JS 数组方法速查

JavaScript 数组方法速查,标注是否改变原数组。

本地处理 · 不上传

加载工具中…

相关:javascript · 数组 · array · 方法 · 速查

JS 数组方法速查列出各方法的作用、返回值与是否修改原数组。区分「改原数组」和「返回新数组」是避免 bug 的关键。

使用步骤

  1. 按增删、查找、遍历、变换分类找方法
  2. 重点看它是否会改变原数组
  3. 需要不变性时选 slice、map、filter 这类
  4. 链式调用前确认每步返回的是数组还是单值

使用场景

  • 查找合适的数组方法
  • 确认某方法是否修改原数组
  • 理解返回值的类型
  • 学习数组的函数式操作

小贴士

  • sort、reverse、splice、push、pop 会修改原数组,而 map、filter、slice、concat 返回新数组。混淆这一点是常见的 bug 来源。
  • sort 默认按字符串排序,数字数组必须传比较函数,否则会出现 10 排在 2 前面。
  • 较新的 toSorted、toReversed 等方法返回新数组而不修改原数组,是对上述陷阱的官方修正。

常见问题

哪些方法会改原数组?

push、pop、shift、unshift、splice、sort、reverse、fill 会修改原数组;map、filter、slice、concat、join 返回新值不改原数组。在需要保持不可变的场景(如 React 状态)中这个区分至关重要。

sort 为什么排序结果不对?

因为它默认把元素转成字符串比较,所以 10 会排在 2 前面。数字排序必须传比较函数:`arr.sort((a,b) => a-b)`。这是 JavaScript 最著名的陷阱之一。

forEach 和 map 怎么选?

需要用返回的新数组就用 map,只是想遍历执行副作用就用 forEach。用 map 却忽略返回值是一种误用,会让阅读代码的人误以为结果被使用了。

JS 数组方法速查是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用JS 数组方法速查,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。