如何在JavaScript中创建包含任意数量空数组的数组?
问题原因
Array.prototype.fill() 传入引用类型值时,只会将同一个引用复制到数组的所有位置,你代码中所有子数组本质是同一个数组对象,修改任意一个都会同步触发所有子数组的变更。
最优单行实现
推荐使用Array.from实现,不存在引用共享问题,将参数里的9替换为你需要的数值即可自定义子数组数量:
const myArray = Array.from({ length: 9 }, () => []);
也可以用扩展运算符搭配map实现,效果一致:
const myArray = [...Array(9)].map(() => []);
以上两种写法修改任意子数组都不会影响其他元素:
myArray[0].push(1); // 输出:[[1], [], [], [], [], [], [], [], []]
内容的提问来源于stack exchange,提问作者GriffsAccount
相关产品推荐
相关产品推荐

