fill

pop

push

reverse

shift

unshift

sort

splice

补充

补充:以下方法会直接修改原数组,调用后返回值通常是数组或与原数组相关的结果,但调用者持有的引用仍然是同一个数组对象(除非显式重新赋值):

  • pop:删除并返回最后一个元素。
  • push:在末尾追加一个或多个元素,返回新长度。
  • shift:删除并返回第一个元素。
  • unshift:在开头追加一个或多个元素,返回新长度。
  • reverse:就地反转数组。
  • splice(start, deleteCount, ...items):从 start 开始删除 deleteCount 个元素并插入 items。
  • sort(compareFn):就地排序,默认按字符串 Unicode 编码;数字要传 (a, b) => a - b。
  • fill(value, start?, end?):用 value 填充 [start, end) 区间的元素。
  • copyWithin(target, start?, end?):将 [start, end) 区间元素复制到 target 处(也会改变原数组,列出来以备检查)。

与之对应,map / filter / concat / slice 等方法不会改变原数组。

const arr = [3, 1, 2]
arr.sort((a, b) => a - b) // [1, 2, 3],原数组已变
arr.reverse()               // [3, 2, 1]

来源整理自:vue3js.cn 面试官系列