为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

炎炎设计 2019-02-20 17:13:50
let test=new Array(2).fill(new Array(2).fill(0));test[0][0]=1;console.log(test);这样一段代码,我觉得打印的结果应该是[    [1,0],    [0,0]]可结果却是
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

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],所以出现这样的打印结果


查看完整回答
反对 回复 2019-02-26
?
杨魅力

TA贡献1811条经验 获得超6个赞

(test[0] === test[1]) //true

因为指向同一个内存地址,


这样写你就明白了


let d=new Array(2).fill(0)

let test=new Array(2).fill(d)


查看完整回答
反对 回复 2019-02-26
  • 2 回答
  • 0 关注
  • 832 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信