拼接和切片的区别是什么?
const array = [1, 2, 3, 4, 5];
array.splice(index, 1);
array.slice(index, 1);
拼接和切片的区别是什么?
const array = [1, 2, 3, 4, 5];
array.splice(index, 1);
array.slice(index, 1);
当前回答
这两种方法对初学者来说很容易混淆。我研究了slice和splice的4个关键点。你可以阅读更多关于切片和拼接的细节。
JavaScript切片
Slice只是从数组中返回指定数量的元素。例如,你有一个包含10个元素的数组,你只想从第二个下标中获取3个元素。 它不修改原始数组,而是返回元素的数量。 slice的语法是array。片(startingIndex elementCount)
在JavaScript中拼接
Splice还可以从与切片相同的数组中返回所选元素,但它会修改原始数组。 您可以在特定索引上使用拼接在数组中添加新元素 您可以同时删除指定的元素以及添加新元素。 使用splice的语法是array。splice(startingIndex, removeCounter, newElement(s)[optional])
总结
切片的目的是只从数组中获取选定的元素,而不修改原始数组。 当您希望通过删除元素和添加新元素来修改原始数组时,应该使用拼接。
其他回答
两者都返回相同的答案,但是:
SPlice将改变原始数组。 Slice不会改变原始数组。
Splice和Slice是内置的Javascript命令,而不是特定的AngularJS命令。Slice返回从“start”到“end”说明符之前的数组元素。Splice改变实际的数组,从“start”开始,并保持指定的元素数量。谷歌有很多这方面的信息,只要搜索。
这里有一个简单的技巧来记住切片和拼接之间的区别
var a=['j','u','r','g','e','n'];
// array.slice(startIndex, endIndex)
a.slice(2,3);
// => ["r"]
//array.splice(startIndex, deleteCount)
a.splice(2,3);
// => ["r","g","e"]
要记住的技巧:
将“spl”(splice的前3个字母)视为“指定长度”的缩写,即第二个参数应该是长度而不是索引
另一个例子:
[2,4,8].splice(1, 2) -> returns [4, 8], original array is [2]
[2,4,8].slice(1, 2) -> returns 4, original array is [2,4,8]
slice()方法将数组部分的副本返回到新的数组对象中。
$scope.participantForms.slice(index, 1);
这不会改变participantForms数组,而是返回一个包含原始数组中索引位置上的单个元素的新数组。
splice()方法通过删除现有元素和/或添加新元素来更改数组的内容。
$scope.participantForms.splice(index, 1);
这将在索引位置从participantForms数组中删除一个元素。
这些是Javascript的原生函数,与AngularJS无关。