.splice() - 如何保护oryginal数组?

时间:2016-01-31 02:11:37

标签: javascript arrays splice

var a = [1, 2, 3];
var b = a;      // b = [1, 2, 3];

console.log(a); // 1, 2, 3
console.log(b); // 1, 2, 3

b.splice(0, 1);
console.log(b); // 2, 3
console.log(a); // 2, 3 <----------- WHY?

我只需要复制我的oryginal&#34; a&#34;数组,因为我想永远保持[1,2,3]。如何从&#34; b&#34;中弹出第一个元素阵列没有接触到原始的阵列?感谢

1 个答案:

答案 0 :(得分:1)

您的代码只需要一个小修复:

var a = [1, 2, 3];
var b = a.slice();

我不确定具体细节,但是当您将数组或对象分配给另一个变量时,数组/对象不会按值复制,而是通过引用复制。 .slice方法将数组中的所有元素复制到新元素,而不是仅保存对旧元素的引用。