Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
splice() 方法就地移除或者替换已存在的元素和/或添加新的元素。
要创建一个删除和/或替换部分内容而不改变原数组的新数组,请使用 toSpliced()。要访问数组的一部分而不修改它,参见 slice()。
从 0 开始计算的索引,表示要开始改变数组的位置,它会被转换成整数。
一个整数,表示数组中要从 start 开始删除的元素数量。
如果省略了 deleteCount,或者其值大于或等于由 start 指定的位置到数组末尾的元素数量,那么从 start 到数组末尾的所有元素将被删除。但是,如果你想要传递任何 itemN 参数,则应向 deleteCount 传递 Infinity 值,以删除 start 之后的所有元素,因为显式的 undefined 会转换为 0。
如果 deleteCount 是 0 或者负数,则不会移除任何元素。在这种情况下,你应该至少指定一个新元素(请参见下文)。
item1、…、itemN 可选从 start 开始要加入到数组中的元素。
如果不指定任何元素,splice() 将只从数组中删除元素。
一个包含了删除的元素的数组。
如果只移除一个元素,则返回一个元素的数组。
如果没有删除任何元素,则返回一个空数组。
splice() 方法是一个修改方法。它可能会更改 this 的内容。如果指定的要插入的元素数量与要删除的元素数量不同,数组的 length 也将会更改。同时,它会使用 [Symbol.species] 来创建一个新数组实例并返回。
如果删除的部分是稀疏的,则 splice() 返回的数组也是稀疏的,对应的索引为空槽。
splice() 方法是通用的。它只期望 this 值具有 length 属性和整数键属性。尽管字符串也类似于数组,但这种方法不适用于它,因为字符串是不可变的。
splice(0, 0, ...elements) 像 unshift() 一样在数组的开头插入元素。
splice(array.length, 0, ...elements) 像 push() 一样在数组的末尾插入元素。
splice() 方法保留了数组的稀疏性。
splice() 方法读取 this 的 length 属性。然后,它根据需要更新整数键属性和 length 属性。
| ECMAScript® 2027 Language Specification # sec-array.prototype.splice |
启用 JavaScript 以查看此浏览器兼容性表。