拼接和切片的区别是什么?

const array = [1, 2, 3, 4, 5];
array.splice(index, 1);
array.slice(index, 1);

当前回答

Splice()改变原始数组,而slice()不会,但它们都返回数组对象。

请看下面的例子:

var array=[1,2,3,4,5];
console.log(array.splice(2));

这将返回[3,4,5]。原始数组受到影响,导致数组为[1,2]。

var array=[1,2,3,4,5]
console.log(array.slice(2));

这将返回[3,4,5]。原始数组不受影响,导致数组为[1,2,3,4,5]。

下面是简单的小提琴,它证实了这一点:

/ /拼接 数组var =[1、2、3、4、5); console.log (array.splice (2)); / /片 var array2 =[1、2、3、4、5) console.log (array2.slice (2)); console.log(“——后——”); console.log(数组); console.log (array2);

其他回答

另一个例子:

[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]

S LICE =给出数组的一部分&没有分裂原始数组

SP LICE =给出数组的一部分&分裂原始数组

我个人觉得这更容易记住,因为这两个术语总是让我这个网页开发初学者感到困惑。

这里有一个简单的技巧来记住切片和拼接之间的区别

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个字母)视为“指定长度”的缩写,即第二个参数应该是长度而不是索引

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)

Splice和Slice是内置的Javascript命令,而不是特定的AngularJS命令。Slice返回从“start”到“end”说明符之前的数组元素。Splice改变实际的数组,从“start”开始,并保持指定的元素数量。谷歌有很多这方面的信息,只要搜索。