在javascript中初始化和填充多维数组

时间:2017-08-22 18:45:05

标签: javascript arrays multidimensional-array

我们如何初始化和创建新的多维数组?

让我们想象一下,如果我想初始化一个4x4多维数组并用0&#39进行填充

理想情况下,在2D数组中,我们会这样做

let oned_array = new Array(10).fill(0); //将创建大小为10的数组,并用0

填充它

我如何做[[0,0],[0,0]](2x2矩阵)

let matrix = new Array([]).fill(0); 

我试图解决一些算法问题,这需要我创建一个新的多维数组并经历它们(岛问题等)

请告知。

编辑:

我找到了另一种解决方案:

Array(2).fill(0).map(_ => Array(2).fill(0));

2 个答案:

答案 0 :(得分:3)

要获得一个独立的填充数组,可以使用Array.from并使用映射值映射一个新数组。

var array = Array.from({ length: 4 }, _ => Array.from({ length: 4 }, _ => 4));

array[0][0] = 0;
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:2)

@ NinaScholz'答案要好得多 - 就像往常一样 - 但我在看到答案之前写完了这个,所以决定发帖了。

类似的想法,但没有使用Array.from。它以指定的长度创建一个新数组,用0填充它以便可以迭代它,迭代它以用指定值填充的新数组替换0。



    
const buildMatrix = (l, h, v) => Array(l).fill(0).map(_ => Array(h).fill(v));
const matrix = buildMatrix(4,4,4);
matrix[0][0] = 0;
console.log(matrix);

.as-console-wrapper { max-height: 100% !important; }