JS:简单数字数组和Array.slice()之间的区别

时间:2016-11-10 17:41:23

标签: javascript arrays

我只想问一下普通数字数组之间的区别: <context-param> <param-name>org.omnifaces.CDN_RESOURCE_HANDLER_URLS</param-name> <param-value>primefaces:jquery/jquery.js=http://code.jquery.com/jquery-1.11.4.min.js</param-value> </context-param>[1,2,3,4,5,6]

&#13;
&#13;
[1,2,3,4,5,6].slice();
&#13;
&#13;
&#13;

结果似乎是一样的,但有些变化。我想知道究竟是什么。

4 个答案:

答案 0 :(得分:1)

使用slice()(不带参数)函数,可以创建原始数组的浅表副本。

var arr = [1,2,3,4,5,6];
arr === arr; // true
arr === arr.slice(); // false

当您想要克隆某个数组,对其执行某些操作但不修改原始数组时,它可能会有所帮助。

答案 1 :(得分:0)

slice()方法将数组的一部分的浅表副本返回到从头到尾选择的新数组对象(不包括结束)。原始数组不会被修改。您也可以使用.slice()代替.slice(begin, end)进行精确复制。

var a = ["zero", "one", "two", "three"];
var sliced = a.slice(1,3);

console.log(a);      // [ "zero", "one", "two", "three" ]
console.log(sliced); // [ "one", "two" ]

答案 2 :(得分:0)

slice将数组的一部分的浅表副本返回到新数组中 所以如果你通过begin&amp; end它将返回一个新数组 例如

[1,2,3,4,5,6].slice(1,3)将返回[2,3]

答案 3 :(得分:0)

它将返回一个新数组,其中包含给定起始索引中的元素,而不是指定结束索引之前的元素

console.log([1,2,3,4,5,6].slice(2));

// returns 1,2

console.log([1,2,3,4,5,6].slice(0,3));

// returns 1,2,3

console.log([1,2,3,4,5,6].slice(2,4));

// returns 3,4

https://ariya.io/2014/02/javascript-array-slice-vs-splice