JavaScript 数组是一种可以保存多个值的变量。有许多与这些数组相关的方法。方法slice() 和splice() 是广泛使用的数组操作方法。它们之间存在各种差异,如下表所示。
slice() | splice() |
---|---|
此方法用于通过选择给定数组的sub-array来获取新数组。 | 此方法用于从给定数组中添加/删除项目。 |
参数‘s’表示起始索引和‘e’表示结束索引。它们表示要获取的sub-array的索引。默认情况下,开始值为‘0’,结束值为‘n’。 | 参数‘i’表示起始索引,‘n’表示要从指定起始索引中删除的项目数。‘第 1 项,第 2 项,……第 n 项’表示要在给定索引处添加的新项目的列表。如果n=0,则不删除任何项目,新项目仅添加到指定的起始索引。 |
这些更改不会反映在原始数组中。 | 更改反映在原始数组中 |
结果必须分配给一个新的数组变量。 | 结果不需要分配给任何其他新变量。 |
返回值是新数组,其中包含给定数组的选定 sub-array 中的值。将选择从 start 到 (end-1) 范围内的值。 | 返回值是一个包含被删除元素的数组。 |
正好有 2 个参数 | 接受 ‘n’ 个参数(可以提供新项目列表) |
用法:
- slice():
array_name.slice(s, e)
- splice():
array_name.splice(i, n, item 1, item 2, .....item n)
slice()方法示例
示例 1:开始和结束均已指定。
<script>
var cars=['Benz', 'Innova', 'Breeza', 'Etios', 'Dzire'];
var new_cars=cars.slice(1, 4);
document.write("cars :", cars, "<br><br>");
document.write("new_cars :", new_cars);
</script>
输出:
cars :Benz, Innova, Breeza, Etios, Dzire new_cars :Innova, Breeza, Etios
示例 2:仅指定开始。默认情况下,末尾是数组的长度。
<script>
var cars=['Benz', 'Innova', 'Breeza', 'Etios', 'Dzire'];
var new_cars=cars.slice(2);
document.write("cars :", cars, "<br><br>");
document.write("new_cars :", new_cars);
</script>
输出:
cars :Benz, Innova, Breeza, Etios, Dzire new_cars :Breeza, Etios, Dzire
splice()方法示例
示例 1:现在让我们添加更多项目但不删除任何项目。
<script>
var cars=['Benz', 'Innova', 'Breeza', 'Etios', 'Dzire'];
cars.splice(2, 0, 'ambassedor', 'BMW', 'Audi');
document.write("cars :", cars, "<br><br>");
</script>
输出:
cars :Benz, Innova, ambassedor, BMW, Audi, Breeza, Etios, Dzire
示例 2:删除一个元素并且不添加任何新项目
<script>
var cars=[
'Benz', 'Innova', 'ambassedor', 'BMW', 'Audi', 'Breeza', 'Etios', 'Dzire'];
cars.splice(2, 1);
document.write("cars :", cars, "<br><br>");
</script>
输出:
cars :Benz, Innova, BMW, Audi, Breeza, Etios, Dzire
示例 3:删除多个元素并且不添加任何新项目。
<script>
var cars=[
'Benz', 'Innova', 'ambassedor', 'BMW', 'Audi', 'Breeza', 'Etios', 'Dzire'];
cars.splice(2, 3);
document.write("cars :", cars, "<br><br>");
</script>
输出:
cars :Benz, Innova, Breeza, Etios, Dzire
在删除多个元素时,在上述情况下,指定的起始索引是‘2’,并且需要删除“3个元素”,因此它开始从索引本身删除元素。因此,索引 2、3 和 4 中的项目被删除。
相关用法
- Javascript Array.splice()用法及代码示例
- Javascript Array.of()用法及代码示例
- Javascript Array.isArray()用法及代码示例
- Javascript Array.from()用法及代码示例
- Javascript Array.join()用法及代码示例
- Javascript Array.findIndex()用法及代码示例
- Javascript Array.fill()用法及代码示例
- Javascript Array.find()用法及代码示例
- Javascript ArrayBuffer.isView()用法及代码示例
- Javascript Array valueOf()用法及代码示例
- Javascript Array map()用法及代码示例
- Javascript Array reduce()用法及代码示例
- Javascript Array from()用法及代码示例
- Javascript Array findIndex()用法及代码示例
- Javascript Array every()用法及代码示例
- Javascript Array copyWithin()用法及代码示例
- Javascript Array some()用法及代码示例
- Javascript Array join()用法及代码示例
- Javascript Array fill()用法及代码示例
- Javascript Array find()用法及代码示例
- Javascript Array concat()用法及代码示例
- Javascript Array filter()用法及代码示例
- Javascript Array shift()用法及代码示例
- Javascript Array toString()用法及代码示例
- Javascript Array reverse()用法及代码示例
注:本文由纯净天空筛选整理自erakshaya485大神的英文原创作品 What is the difference between Array.slice() and Array.splice() in JavaScript ?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。