在JavaScript中JSON数组作为变量赋值

​ 在 JavaScript 中,如果你把一个 JSON 数组赋值给另一个变量,实际上是将该数组的引用(地址)赋值给了新变量,而不是复制整个数组。这意味着新变量和原数组实际上是同一个数组对象,它们的内容会相互影响,当你修改其中一个数组中的元素时,另外一个数组中对应的元素也会发生改变,因为它们实际上是同一个元素。

1、如果你修改原数组中的元素,新变量中对应的元素也会发生改变:

let a = [1, 2, 3];
let b = a;  // 把 a 的引用赋值给 b

a[0] = 0;
console.log(b);  // 输出 [0, 2, 3]

2、如果你向新变量中添加或删除元素,原数组也会发生相应的改变:

let a = [1, 2, 3];
let b = a;  // 把 a 的引用赋值给 b

b.push(4);
console.log(a);  // 输出 [1, 2, 3, 4]

3、如果你希望复制一个数组而不是共享引用,可以使用【slice() 】 方法或扩展运算符 【…】:

let a = [1, 2, 3];
let b = a.slice();  // 复制 a 并赋值给 b

a[0] = 0;
console.log(a);  // 输出 [0, 2, 3]
console.log(b);  // 输出 [1, 2, 3]


let a = [1, 2, 3];
let b = [...a];  // 复制 a 并赋值给 b

a.push(4);
console.log(a);  // 输出 [1, 2, 3, 4]
console.log(b);  // 输出 [1, 2, 3]

这样,新数组和原数组就是两个独立的数组对象,它们的内容不再相互影响。

猜你喜欢

转载自blog.csdn.net/weixin_44380380/article/details/130090068