拼接和切片的区别是什么?
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() javascript内置函数之间的区别是, Slice返回删除的项,但没有改变原始数组; 就像,
// (original Array)
let array=[1,2,3,4,5]
let index= array.indexOf(4)
// index=3
let result=array.slice(index)
// result=4
// after slicing=> array =[1,2,3,4,5] (same as original array)
但在splice()情况下,它会影响原始数组;就像,
// (original Array)
let array=[1,2,3,4,5]
let index= array.indexOf(4)
// index=3
let result=array.splice(index)
// result=[4,5]
// after splicing array =[1,2,3] (splicing affects original array)
其他回答
按索引拼接和删除数组项
指数= 2
//splice & will modify the origin array
const arr1 = [1,2,3,4,5];
//slice & won't modify the origin array
const arr2 = [1,2,3,4,5]
console.log("----before-----");
console.log(arr1.splice(2, 1));
console.log(arr2.slice(2, 1));
console.log("----after-----");
console.log(arr1);
console.log(arr2);
Let log = console.log; //splice &将修改原始数组 Const arr1 = [1,2,3,4,5]; //slice &不会修改原始数组 Const arr2 = [1,2,3,4,5] 日志(前”————“); 日志(arr1。接头(2,1)); 日志(arr2。片(2,1)); 日志(”——后——”); 日志(arr1); 日志(arr2);
Splice和Slice是内置的Javascript命令,而不是特定的AngularJS命令。Slice返回从“start”到“end”说明符之前的数组元素。Splice改变实际的数组,从“start”开始,并保持指定的元素数量。谷歌有很多这方面的信息,只要搜索。
这两种方法对初学者来说很容易混淆。我研究了slice和splice的4个关键点。你可以阅读更多关于切片和拼接的细节。
JavaScript切片
Slice只是从数组中返回指定数量的元素。例如,你有一个包含10个元素的数组,你只想从第二个下标中获取3个元素。 它不修改原始数组,而是返回元素的数量。 slice的语法是array。片(startingIndex elementCount)
在JavaScript中拼接
Splice还可以从与切片相同的数组中返回所选元素,但它会修改原始数组。 您可以在特定索引上使用拼接在数组中添加新元素 您可以同时删除指定的元素以及添加新元素。 使用splice的语法是array。splice(startingIndex, removeCounter, newElement(s)[optional])
总结
切片的目的是只从数组中获取选定的元素,而不修改原始数组。 当您希望通过删除元素和添加新元素来修改原始数组时,应该使用拼接。
Splice和Slice都是Javascript数组函数。
拼接与切片
splice()方法返回数组中被删除的元素,slice()方法返回数组中被选择的元素,作为一个新的数组对象。 splice()方法改变原始数组,slice()方法不改变原始数组。 splice()方法可以接受n个参数,slice()方法可以接受2个参数。
实例拼接
参数1:索引,必需的。指定在什么位置添加/删除项的整数。使用负值指定从数组末尾开始的位置。
论据2:可选。要删除的项的数目。如果设置为0(零),则不会删除任何项。如果没有通过,则从所提供的索引中删除所有项。
参数3…n:可选。要添加到数组中的新项。
数组var =[1、2、3、4、5); console.log (array.splice (2)); //显示[3,4,5],作为一个新的数组对象返回已删除的项。 console.log(数组); //显示[1,2],原始数组改变。 var array2 = [6 7 8 9 0]; console.log (array2.splice (2,1)); //显示[8] console.log (array2.splice (2,0)); //显示[],表示没有删除任何项。 console.log (array2); //显示[6,7,9,0]
切片示例
论据1:必须的。指定从何处开始选择的整数(第一个元素的索引为0)。使用负数从数组的末尾开始选择。
论据2:可选。一个整数,指定在何处结束选择,但不包括。如果省略,将选择从数组开始位置到数组结束的所有元素。使用负数从数组的末尾进行选择。
var array=[1,2,3,4,5] console.log(array.slice(2)); // shows [3, 4, 5], returned selected element(s). console.log(array.slice(-2)); // shows [4, 5], returned selected element(s). console.log(array); // shows [1, 2, 3, 4, 5], original array remains intact. var array2=[6,7,8,9,0]; console.log(array2.slice(2,4)); // shows [8, 9] console.log(array2.slice(-2,4)); // shows [9] console.log(array2.slice(-3,-1)); // shows [8, 9] console.log(array2); // shows [6, 7, 8, 9, 0]
这里有一个简单的技巧来记住切片和拼接之间的区别
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个字母)视为“指定长度”的缩写,即第二个参数应该是长度而不是索引