注册账号登录

关于js数组赋值的问题

技术Javascript创建于2020/06/18311次阅读
有无大佬知道这是什么原理 

最后得到的wj[0] 和 wj[1]是正确的

最后得到的wj[0] 和 wj[1]都是wj[1] 的值


var wj = new Array;
for(i=0;i<2;i++)
{
var wj1 = new Array;
for(j=0;j<6;j++)
  {
  wj1[j]=(i+j); 
}
wj[i]=wj1;
console.log(wj);
}
1条评论 / 4条回复
大概可能是这样,对wj修改都是在同一个对象上,因此打印的是整个对象。
把 console.log(wj); 改成 console.log(JSON.stringify(wj)); 就正常了
2020/06/182 人赞
回复

虽然过程中打印出来的值是对的,但这种写法   最后wj的赋值还是同样的两个数组[1,2,3,4,5,6]
,而不是,另一种写法的[0,1,2,3,4,5]  和 [1,2,3,4,5,6]。我想问的其实就是为什么两种写法最后得到的wj的赋值不同,看起来逻辑好像是一样的,只是 wj1   声明的位置不同
2020/06/30
回复
可能是浏览器场景的关系,如果使用nodejs跑的话,输出是正常的。
2020/06/30
回复
哦哦,3q。多谢多谢
2020/06/30
回复
是的
2020/07/15
回复
走啊走zouazou
关注私信
1
关注
2
粉丝
2
帖子