javascript - 使用 2D javascript 数组中每个元素的随机值初始化新对象?
问题描述
我正在尝试执行此基本迭代和对象初始化,但似乎每一行都是使用包含相同 ID 的对象创建的。我疯了吗?
function makeGrid (cols, rows) {
const grid = new Array(cols).fill(new Array(rows))
for (let i = 0; i < cols; i++) {
for (let j = 0; j < rows; j++) {
grid[i][j] = {id: random()}
}
}
return grid
}
解决方案
感谢@Scott Hunter 和@ASDFGerte(在评论中):问题是new Array(cols).fill(new Array(rows))
. 这是用对另一个新数组的引用填充新启动的数组new Array(rows)
。我想做的是为数组中的每个元素创建新cols
数组。这解决了这个问题:
[...new Array(cols)].map(() => new Array(rows))
推荐阅读
- python - python argparse - 如何允许解析器处理标志和非标志参数
- javascript - List files in a directory with PHP and JavaScript
- javascript - 使用 Selenium 在 Youtube 中单击“查看更多回复”
- python - How do I run the tensorflow sample code? (throws an error)
- java - Keycloak 多域登录
- python - next() multiple times in .csv file
- tomcat - Cloud Foundary uaa 日志定制
- java - HTTP Request From Android Client
- python - Condionally and Randomly update Pandas values?
- node.js - 如何按名称查找所有用户?