我需要一些帮助来理解为什么当我通过引用复制数组时为什么在数组之间创建关系。请看以下示例:
let a = [1,2,3];
let b = a;
b.push(4);
console.log(b); // [1,2,3,4]
console.log(a); // [1,2,3,4]
a === b; // true
由于某些原因,当我修改{b}时(我希望它们是独立的数组),{a}会发生变化。
这种关系对于变量不是正确的,它出现了。请看以下示例:
let a = 'test';
let b = a;
b = 'test1';
console.log(b); // "test1"
console.log(a); // "test"
a === b; // false
有人知道数组的行为背后的原因吗?
答案 0 :(得分:0)
数组是按引用复制的,因此在您写时:
let b = a;
您在a
中引用b
。
正确的方法:
let b = [...a]
或
let b = a.slice(0);