相关疑难解决方法(0)

带对象的Array.prototype.fill()传递引用而不是新实例

只是一个小问题.

我正在玩弄一点,并试图实例化一个新的长度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时应该为每个元素创建一个新对象?或者我应该将其转换为循环?

提前致谢!

javascript arrays

41
推荐指数
4
解决办法
8668
查看次数

更改多维数组中的一个单元格会更新整列

在 Chrome 的控制台中创建一个新的多维数组时,如下所示:

var array = Array(10).fill(Array(10).fill(false));
Run Code Online (Sandbox Code Playgroud)

数组看起来如预期(检查console.table): 在此处输入图片说明

但是当试图只改变数组中的一个单元格array[5][5] = true;时:发生了一些奇怪的事情: 在此处输入图片说明

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

javascript google-chrome

5
推荐指数
1
解决办法
418
查看次数

标签 统计

javascript ×2

arrays ×1

google-chrome ×1