JS:简单的数字排列和Array.slice()之间的区别
问题描述:
我只想问什么是正常的数字阵列之间的区别: [1,2,3,4,5,6]
和[1,2,3,4,5,6].slice();
JS:简单的数字排列和Array.slice()之间的区别
console.log([1,2,3,4,5,6].slice());
console.log([1,2,3,4,5,6]);
结果似乎是一样,但有些变化。我想知道它究竟是什么。
答
使用slice()
(无参数)函数可以创建原始数组的浅表副本。
var arr = [1,2,3,4,5,6];
arr === arr; // true
arr === arr.slice(); // false
当你想克隆一些数组,对它做一些操作但不能修改原来的数组时,它可能会有帮助。
+0
似乎你是对的。谢谢!它解释了一切。 – Patrickkx
答
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" ]
答
它将返回一个新数组,其中包含给定起始索引中的元素,直到指定的结束索引
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
'.slice()'用于使所述阵列的一个副本。 – Barmar
@Barmar你能做出完整的答案吗?我会将它标记为最好的。 – Patrickkx
'.slice()'用于制作不引用原始数组的数组的浅层克隆。 – Redu