猿问

一个关于js数组赋值的问题

let test=new Array(2).fill(new Array(2).fill(0));

test[0][0]=1;

console.log(test);

这样一段代码,我觉得打印的结果应该是


[

    [1,0],

    [0,0]

]

可结果却是

炎炎设计
浏览 833回答 2
2回答

芜湖不芜

let test=new Array(2).fill(new Array(2).fill(0));// 等于const array = new Array(2).fill(0)let test=new Array(2).fill(array);而 array 是一个引用对象,所以test[0] === test[1],所以出现这样的打印结果

杨魅力

(test[0] === test[1]) //true因为指向同一个内存地址,这样写你就明白了let d=new Array(2).fill(0)let test=new Array(2).fill(d)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答