跳至主要內容

数组方法中哪些会改变原数组,哪些不会?


数组方法中哪些会改变原数组,哪些不会?

会改变原数组的方法:

增删改操作

  • pushunshiftsplice
  • popshiftsplice
  • splicecopyWithinfill

重新排序

  • reversesort

不改变原数组的方法:

创建新数组

  • 部分选取slicefilter
  • 合并concat

迭代/转换

  • 无副作用迭代mapforEach
  • 返回单值或布尔值reducesomeeveryincludes
  • 转换字符串join

数组操作

  • 展开flat
  • 获取迭代器keysentries

特别注意:

  1. splice 是一个灵活的增删改方法,视参数不同决定行为。
  2. map 在基本类型和引用类型上的区别:基本类型不会改变原数组,但如果数组元素是对象,修改对象属性会影响原数组。
  3. 排序和颠倒顺序的方法 (sort, reverse) 都会直接修改原数组,需要注意其不可逆性。