将二维数组转化为 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 ]
]

更新日期: 2020 年 11 月 24 日

171 次浏览

开启您的事业

完成课程获得认证

开始
广告