当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Array.slice()和Array.splice()的区别用法及代码示例


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 中的项目被删除。



相关用法


注:本文由纯净天空筛选整理自erakshaya485大神的英文原创作品 What is the difference between Array.slice() and Array.splice() in JavaScript ?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。