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

关于makeMatrix的问题

请教大神,为什么最初版本的makeMatrix函数生成的矩阵,为a[0][1]赋值以后第二列全都变成了2?只执行一次makeRow是什么意思?

正在回答

2 回答

同问 求解

0 回复 有任何疑惑可以回复我~
#1

边城

估计同问和原问不是要问同一个问题,我猜你需要了解 Array.from() 的第二个参数,查查 MDN
2018-05-26 回复 有任何疑惑可以回复我~

智障了,makeMatrix中的makeRow函数运行的时候没有循环,只生成了一行数据,在用行数据填充矩阵的时候,生成的那一行数据被copy成了几份填入,由于这几行数据在地址上也是相同的,改变一个元素其他行上相同的位置的元素也会发生变化。

1 回复 有任何疑惑可以回复我~
#1

imoocaccount

大佬,完美解答,要不是你提出这个问题,我好像不会细想,谢谢。 MDN 在Array.prototype.fill()的介绍中写道:"当一个对象被传递给 fill 方法的时候, 填充数组的是这个对象的引用."
2018-07-30 回复 有任何疑惑可以回复我~
#2

moyemoji 提问者 回复 imoocaccount

我只是一只小白
2018-07-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于makeMatrix的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信