只是一个小问题.
我正在玩弄一点,并试图实例化一个新的长度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时应该为每个元素创建一个新对象?或者我应该将其转换为循环?
提前致谢!
在 Chrome 的控制台中创建一个新的多维数组时,如下所示:
var array = Array(10).fill(Array(10).fill(false));
Run Code Online (Sandbox Code Playgroud)
但是当试图只改变数组中的一个单元格array[5][5] = true;时:发生了一些奇怪的事情:

由于这个原因,我一直用头撞墙一段时间,但无法弄清楚。这可能是一个错误,因为 Array.fill 是一个实验性/新功能吗?