javascript - Array.fill 中的奇怪行为

标签 javascript arrays

<分区>

当我使用 Array.fill 填充多维数组时,在推送到其中一个数组时出现奇怪的行为:

var arr = Array(2).fill([]);
arr[0].push(5);
console.log(arr); 
//=> prints [[5], [5]]

最佳答案

fill 本质上是这样做的:

var content = [];
for (var i = 0; i < 2; i += 1) {
  arr[i] = content;
}

因此,您的数组将引用您传递给每个属性中的 fill 的数组。

关于javascript - Array.fill 中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931990/

相关文章:

javascript - Google map v3 API - 在 map 上绘制圆圈

mysql - 在循环中使用 MySQL 输出作为 BASH 函数的输入

arrays - Scala:将两个数组合并为一个结构

javascript - jQuery 增量麻烦

javascript - CSS 扩展,悬停时隐藏内容

arrays - 如何从 &str 转换为 [i8; 256]

javascript - 根据另一个数组从数组中获取元素范围

JavaScript:如何加入/组合两个数组以连接成一个数组?

javascript - 将对象数组转换为基元数组(从对象属性中提取)

javascript - 如何发现重复的 HTML 元素 ID?