哈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
新增项目
为了向数组添加新元素,我们编写:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8]; var arr2 = arr.splice (2, 0, 100, 101);
从数组的第二个元素开始,将添加数字100和101,最终值如下:
arr2
修改现有项目
我们可以使用sprick修改数组中的现有元素,以按其索引号删除该元素,并在其位置插入一个新元素。
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
要用100代替3,我们写:
var arr2 = arr.splice (3, 1, 100);
执行上面的代码段后,我们为arr和arr2获得以下值:
arr2
数组切片
尽管拼接还可以插入和更新数组元素,但是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
在执行slice语句后,arr变量保持不变,而splice语句更新了原始数组。
因此,如果要更新原始数组,则使用splice函数,但如果仅需要数组的一部分,则使用slice。