JavaScript中的Array.splice和Array.slice

哈Ha! 我向您介绍Kunal Tandon 撰写的文章“ JavaScript中的Array.splice和Array.slice”

您只需使用JavaScript Array原型中提供的上述功能即可。 但是它们看起来如此相似,以至于有时您会感到困惑。

关键差异


Array.splice修改原始数组,并返回包含已删除元素的数组。

Array.slice不会修改原始数组。 它只是返回一个新的元素数组,它是原始数组的子集。

Array.splice


剪接用于修改数组的内容,包括删除元素,替换现有元素,甚至向该数组添加新元素。

使用拼接功能时,将更新原始阵列。

考虑以下数组:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; 

具有语法的Array.splice


arr.splice(fromIndex,itemsToDelete,item1ToAdd,item2ToAdd,...);

删除项目


要从数组中删除元素,我们编写:

 var deleItems = arr.splice (3, 2); 

这将删除从索引3开始的两个元素,并返回远程数组。 结果,我们得到:

 deleItems // [3, 4] arr // [0, 1, 2, 5, 6, 7, 8] 

新增项目


为了向数组添加新元素,我们编写:

 const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; var arr2 = arr.splice (2, 0, 100, 101); 

从数组的第二个元素开始,将添加数字100和101,最终值如下:

 arr2 // [],         arr // [0, 1, 100, 101, 2, 3, 4, 5, 6, 7, 8] 

修改现有项目


我们可以使用sprick修改数组中的现有元素,以按其索引号删除该元素,并在其位置插入一个新元素。

 const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; 

要用100代替3,我们写:

 var arr2 = arr.splice (3, 1, 100); //   -   3  1    100 

执行上面的代码段后,我们为arr和arr2获得以下值:

 arr2 // [3]      3   arr arr // [0, 1, 2, 100, 4, 5, 6, 7, 8] // 3   100   arr 

数组切片


尽管拼接还可以插入和更新数组元素,但是slice函数仅用于从数组中删除元素。
我们只能使用slice函数从数组中删除元素

Array.slice语法

arr.slice(startIndex,endIndex);

startIndex-新数组元素的起始索引,我们应该在新数组中获取
startIndex.endIndex(可选)是应执行切片的最终索引,不包括此元素。

考虑以下数组:

 const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; 

为了从值[2,3,4,5]中获得数组的一部分,我们编写:

 var slicedArr = arr.slice (2, 6); 

请注意,这里我们指定了第二个参数6,而不是5。执行上面的代码后,我们得到以下数组:

 arr // [0, 1, 2, 3, 4, 5, 6, 7, 8] slicedArr // [2, 3, 4, 5] 

在执行slice语句后,arr变量保持不变,而splice语句更新了原始数组。

因此,如果要更新原始数组,则使用splice函数,但如果仅需要数组的一部分,则使用slice。

Source: https://habr.com/ru/post/zh-CN476082/


All Articles