ES6 中的二维数组

Mar*_*413 4 javascript arrays ecmascript-6

长话短说,我正在寻找一种使用 ES6 创建和填充二维数组的方法,以避免for循环。创建的数组应包含全 0。我尝试了很多不同的方法,所以我不能张贴所有这些。

var [r, c] = [5, 5]; 
var m = Array(r).fill(Array(c).fill(0));
Run Code Online (Sandbox Code Playgroud)

这有效,但它会创建一堆相同数组的实例,并且添加切片Array(r).fill(Array(c).fill(0).slice());也无济于事。

我还尝试创建空数组,然后通过它们循环,但这是一个完全不同的问题,你显然不能forEach()map()空数组,我什至无法有效地循环遍历一个填充数组。

我在这里错过了什么吗?很多 for 循环是解决这个问题的最佳方法吗?它看起来真的很乱而且太长了。任何帮助表示赞赏。

vit*_*avv 8

这样做对我有用:

var [r, c] = [5, 5]; 
var m = Array(r).fill().map(()=>Array(c).fill(0));
Run Code Online (Sandbox Code Playgroud)

基本上只是用一个虚拟值填充它,这样你就可以映射它