我们如何初始化和创建新的多维数组?
让我们想象一下,如果我想初始化一个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));
答案 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; }