我正在尝试使用创建 6 x 12 矩阵Array.fill
let m = Array(6).fill(Array(12).fill(0));
虽然这有效,但问题是内部数组实际上都引用相同的Array
object.
let m = Array(6).fill(Array(12).fill(0));
m[0][0] = 1;
console.log(m[1][0]); // Outputs 1 instead of 0
我想要(并且期望)的价值m[1][0]
to be 0
.
我怎样才能强迫Array.fill
填充给定参数的按值复制(例如:Array(12).fill(0)
是我的情况的论点)而不是通过引用复制?
你可以使用数组.from()反而:
谢谢Pranav C Balan
在关于进一步改进这一点的建议的评论中。
let m = Array.from({length: 6}, e => Array(12).fill(0));
m[0][0] = 1;
console.log(m[0][0]); // Expecting 1
console.log(m[0][1]); // Expecting 0
console.log(m[1][0]); // Expecting 0
原始声明(上面优化得更好):
let m = Array.from({length: 6}, e => Array.from({length: 12}, e => 0));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)