Array 中哪些 API 可改变自身?
JavaScript 数组的某些 API 方法可以直接修改原始数组,这些方法包括 push、pop、shift 等。
在 JavaScript 的 Array 原型中,部分 API 会直接修改数组自身(原址突变操作)。以下是会改变数组自身的主要方法:
- push()
添加一个或多个元素到数组末尾,并返回新的长度:const arr = [1, 2]; arr.push(3); // arr 变为 [1, 2, 3]
- pop()
移除并返回数组的最后一个元素:const arr = [1, 2, 3]; const last = arr.pop(); // last = 3, arr 变为 [1, 2]
- shift()
移除并返回数组的第一个元素:const arr = [1, 2, 3]; const first = arr.shift(); // first = 1, arr 变为 [2, 3]
- unshift()
在数组开头添加一个或多个元素,并返回新的长度:const arr = [2, 3]; arr.unshift(1); // arr 变为 [1, 2, 3]
- splice()
通过删除、替换或添加元素修改数组内容:const arr = [1, 2, 3]; arr.splice(1, 1, 'a'); // 从索引 1 删除 1 个元素并添加 'a',arr 变为 [1, 'a', 3]
- reverse()
原地反转数组元素的顺序:const arr = [1, 2, 3]; arr.reverse(); // arr 变为 [3, 2, 1]
- sort()
原地对数组元素排序:const arr = [3, 1, 2]; arr.sort(); // arr 变为 [1, 2, 3]
- fill()
用一个固定值填充数组中指定索引范围内的元素:const arr = [1, 2, 3]; arr.fill(0, 0, 2); // 从索引 0 到 2(不含)填充为 0,arr 变为 [0, 0, 3]
注意事项:
- 上述 API 均直接在原数组上操作,不返回新数组。
- 非破坏性方法如
map()
,filter()
返回新数组,不影响原数组。