JavaScript数组splice()
目录
JavaScript Array splice()方法通过在适当位置更改(添加/删除)其元素来返回数组。
splice()
方法的语法为:
arr.splice(start, deleteCount, item1, ..., itemN)
在这里, arr是一个数组。
splice()参数
splice()
方法采用:
- start-更改数组的索引。
- deleteCount (可选)-从
start
删除的项目数。 - item1,…,itemN (可选)-要添加到
start
索引的元素。如果未指定,则splice()
将仅从数组中删除元素。
从splice()返回值
- 返回包含已删除元素的数组。
注意: splice()
方法更改原始数组。
示例1:使用splice()方法
let languages = ["JavaScript", "Python", "Java", "Lua"]; // replacing "Java" & "Lua" with "C" & "C++" let removed = languages.splice(2, 2, "C", "C++"); console.log(removed); // [ 'Java', 'Lua' ] console.log(languages); // [ 'JavaScript', 'Python', 'C', 'C++' ] // adding elements without deleting existing elements let removed1 = languages.splice(1, 0, "Java", "Lua"); console.log(removed1); // [] console.log(languages); // [ 'JavaScript', 'Java', 'Lua', 'Python', 'C', 'C++' ] // removing 3 elements let removed2 = languages.splice(2, 3); console.log(removed2); // [ 'Lua', 'Python', 'C' ] console.log(languages); // [ 'JavaScript', 'Java', 'C++' ]
输出
[ 'Java', 'Lua' ] [ 'JavaScript', 'Python', 'C', 'C++' ] [] [ 'JavaScript', 'Java', 'Lua', 'Python', 'C', 'C++' ] [ 'Lua', 'Python', 'C' ] [ 'JavaScript', 'Java', 'C++' ]
示例2:对不同的deleteCount值使用splice()
- 如果start> array.length ,则
splice()
不会删除任何内容,并开始将参数附加到数组的末尾。 - 如果start <0 ,则从后向开始计算索引( array.length + start )。例如, -1是最后一个元素。
- 如果array.length + start <0 ,则将从索引0开始。
let languages = ["JavaScript", "Python", "Java", "Lua"]; // does not removes, only appends to the end let removed = languages.splice(5, 2, "C++"); console.log(removed); // [] console.log(languages); // ["JavaScript", "Python", "Java", "Lua", "C++"] // remove last element and add 3 more elements let removed1 = languages.splice(-1, 1, "Swift", "Scala", "Go"); console.log(removed1); // [ "C++" ] console.log(languages); // ["JavaScript", "Python", "Java", "Lua", "Swift", "Scala", "Go"]
输出
[] ["JavaScript", "Python", "Java", "Lua", "C++"] [ 'C++' ] ["JavaScript", "Python", "Java", "Lua", "Swift", "Scala", "Go"]
示例3:对不同的起始值使用splice()
- 如果deleteCount被忽略或大于数组中剩余的元素数,它将删除数组开始到结尾的所有元素。
- 如果deleteCount为0或negative ,则不会删除任何元素。但是,至少应指定一个新元素。
let languages = ["JavaScript", "Python", "Java", "Lua"]; // removes everything from start let removed = languages.splice(1); console.log(removed); // [ "Python", "Java", "Lua" ] console.log(languages); // [ "JavaScript" ] // remove none & add 3 more element let removed1 = languages.splice(1, -2, "Swift", "Scala", "Go"); console.log(removed1); // [ ] console.log(languages); // [ "JavaScript", "Swift", "Scala", "Go" ]
输出
[ "Python", "Java", "Lua" ] [ "JavaScript" ] [ ] ["JavaScript", "Swift", "Scala", "Go"]
推荐读物:
- JavaScript Array.pop()
- JavaScript Array.push()
总计 0 评论