只是一个小问题.
我正在玩弄一点,并试图实例化一个新的长度x数组,其中该数组的所有元素初始化为值y
var arr = new Array(x).fill(y);
Run Code Online (Sandbox Code Playgroud)
如果y的值不是对象,则此方法很有效.意思是y是一个对象,以下是正确的:
var arr = new Array(2).fill({});
arr[0] === arr[1]; //is true;
arr[0].test = 'string';
arr[1].test === 'string'; //is also true;
Run Code Online (Sandbox Code Playgroud)
有没有办法说明在使用fill-function时应该为每个元素创建一个新对象?或者我应该将其转换为循环?
提前致谢!
我正在尝试创建一个6乘12矩阵 Array.fill
let m = Array(6).fill(Array(12).fill(0));
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但问题是内部数组实际上都引用了同一个Array对象.
let m = Array(6).fill(Array(12).fill(0));
m[0][0] = 1;
console.log(m[1][0]); // Outputs 1 instead of 0
Run Code Online (Sandbox Code Playgroud)
我想(和预期)的值m[1][0]是0.
如何强制Array.fill填充给定参数的值复制(例如:Array(12).fill(0)在我的情况下是参数)而不是通过引用复制?