Array 中哪些 API 可改变自身?

JavaScript 数组的某些 API 方法可以直接修改原始数组,这些方法包括 push、pop、shift 等。

JavaScript 中等 API 数组 Array

在 JavaScript 的 Array 原型中,部分 API 会直接修改数组自身(原址突变操作)。以下是会改变数组自身的主要方法:

  1. push()
    添加一个或多个元素到数组末尾,并返回新的长度:
    const arr = [1, 2];
    arr.push(3); // arr 变为 [1, 2, 3]
    
  2. pop()
    移除并返回数组的最后一个元素:
    const arr = [1, 2, 3];
    const last = arr.pop(); // last = 3, arr 变为 [1, 2]
    
  3. shift()
    移除并返回数组的第一个元素:
    const arr = [1, 2, 3];
    const first = arr.shift(); // first = 1, arr 变为 [2, 3]
    
  4. unshift()
    在数组开头添加一个或多个元素,并返回新的长度:
    const arr = [2, 3];
    arr.unshift(1); // arr 变为 [1, 2, 3]
    
  5. splice()
    通过删除、替换或添加元素修改数组内容:
    const arr = [1, 2, 3];
    arr.splice(1, 1, 'a'); // 从索引 1 删除 1 个元素并添加 'a',arr 变为 [1, 'a', 3]
    
  6. reverse()
    原地反转数组元素的顺序:
    const arr = [1, 2, 3];
    arr.reverse(); // arr 变为 [3, 2, 1]
    
  7. sort()
    原地对数组元素排序:
    const arr = [3, 1, 2];
    arr.sort(); // arr 变为 [1, 2, 3]
    
  8. fill()
    用一个固定值填充数组中指定索引范围内的元素:
    const arr = [1, 2, 3];
    arr.fill(0, 0, 2); // 从索引 0 到 2(不含)填充为 0,arr 变为 [0, 0, 3]
    

注意事项:

  • 上述 API 均直接在原数组上操作,不返回新数组。
  • 非破坏性方法如 map(), filter() 返回新数组,不影响原数组。