我们如何初始化和创建新的多维数组?
假设我想初始化一个4x4的多维数组,并用0填充它
理想情况下,在2D数组中,我们将
let oned_array = new Array(10).fill(0);
//将创建大小为10的数组并将其填充为0
我该如何做像[0,0], [0,0]这样的事情呢
let matrix = new Array([]).fill(0);
我正在尝试解决一些算法问题,这需要我创建一个新的多维数组并遍历它们(孤岛问题等)。
请给我建议。
编辑:
我找到的另一个解决方案是:
Array(2).fill(0).map(_ => Array(2).fill(0));
发布于 2017-08-23 03:12:52
要获得独立的填充数组,可以使用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; }
发布于 2017-08-23 03:44:09
@尼纳斯霍尔茨的答案要好得多--一如既往--但我在看到答案之前就写完了这篇文章,所以我还是决定把它贴出来。
类似的想法,但没有使用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; }
https://stackoverflow.com/questions/45824822
复制相似问题