跳至主要內容

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


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

会改变原数组的方法:

增删改操作

  • 增:push、unshift、splice
  • 删:pop、shift、splice
  • 改:splice、copyWithin、fill

重新排序

  • reverse、sort

不改变原数组的方法:

创建新数组

  • 部分选取:slice、filter
  • 合并:concat

迭代/转换

  • 无副作用迭代:map、forEach
  • 返回单值或布尔值:reduce、some、every、includes
  • 转换字符串:join

数组操作

  • 展开:flat
  • 获取迭代器:keys、entries

特别注意:

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