将二维数组转化为 JavaScript 中的数组稀疏数组
假设我们有一个像这样二维数组 −
const arr = [ [3, 1], [2, 12], [3, 3] ];
我们需要编写一个 JavaScript 函数,它接收一个这样的数组。
然后该函数应创建一个新的二维数组,该数组包含所有元素,这些元素初始化为未定义,而不包含输入数组中存在的元素索引。
因此,对于输入数组,
output[3][1] = 1; output[2][12] = 1; output[3][3] = 1;
而其余所有元素都应初始化为未定义
因此,最终输出应如下所示 −
const output = [ undefined, undefined, [ undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1 ], [ undefined, 1, undefined, 1 ] ];
示例
代码如下 −
const arr = [ [3, 1], [2, 12], [3, 3] ]; const map2D = (arr = []) => { const res = []; arr.forEach(el => { res[el[0]] = res[el[0]] || []; res[el[0]][el[1]] = 1; }); return res; }; console.log(map2D(arr));
输出
而控制台中的输出将为 −
[ <2 empty items>, [ <12 empty items>, 1 ], [ <1 empty item>, 1, <1 empty item>, 1 ] ]
广告