gpt4 book ai didi

javascript - .splice() - 如何保护原始数组?

转载 作者:行者123 更新时间:2023-12-03 07:48:26 27 4
gpt4 key购买 nike

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?

我只需要复制原来的“a”数组,因为我想永远将其保留为 [1, 2, 3]。如何从“b”数组中弹出第一个元素而不触及原始元素?谢谢

最佳答案

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

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

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

关于javascript - .splice() - 如何保护原始数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com