注册账号登录
关注

关于js数组赋值的问题

技术Javascript创建于6月18日61次阅读
有无大佬知道这是什么原理 

最后得到的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条评论 / 3条回复
大概可能是这样,对wj修改都是在同一个对象上,因此打印的是整个对象。
把 console.log(wj); 改成 console.log(JSON.stringify(wj)); 就正常了
6月18日2 人赞
回复

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