为什么在我修改 x 数组时 y 数组会发生变化? javascript
Why is the y-array changing when I modify the x array? javascript
// x = [7,2]
let x = [7, 2];
// y = [[7,2]]
let y = [x]
// x = [9,2]
x[0] = 9;
// y also = [[9,2]]
console.log(y);
为什么我改变了x,y也改变了? y 不应该还是我初始化它时的样子 [[7,2]] 吗?这种现象叫什么?
正在通过引用复制值。 - https://www.dyn-web.com/javascript/arrays/value-vs-reference.php
你想做什么 -
let x = [7,2];
let y = [...x];
x[0] = 9;
(2) [9, 2]
y
(2) [7, 2]
在javascript中,当您将数组复制到另一个变量时,它不会将数据复制到另一个变量。它将创建对该变量的引用,因此当原始数组发生变化时,复制到数组上的内容也会发生变化,这称为按引用调用。
另一个术语称为按值调用,它将数据复制到另一个变量,原始数据类型就是这种情况
// x = [7,2]
let x = [7, 2];
// y = [[7,2]]
let y = [x]
// x = [9,2]
x[0] = 9;
// y also = [[9,2]]
console.log(y);
为什么我改变了x,y也改变了? y 不应该还是我初始化它时的样子 [[7,2]] 吗?这种现象叫什么?
正在通过引用复制值。 - https://www.dyn-web.com/javascript/arrays/value-vs-reference.php
你想做什么 -
let x = [7,2];
let y = [...x];
x[0] = 9;
(2) [9, 2]
y
(2) [7, 2]
在javascript中,当您将数组复制到另一个变量时,它不会将数据复制到另一个变量。它将创建对该变量的引用,因此当原始数组发生变化时,复制到数组上的内容也会发生变化,这称为按引用调用。
另一个术语称为按值调用,它将数据复制到另一个变量,原始数据类型就是这种情况