Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで2D配列を配列のスパース配列に変換する


このような2次元配列があるとします-

const arr = [
   [3, 1],
   [2, 12],
   [3, 3]
];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。

次に、関数は、入力配列に存在する要素のインデックス以外の未定義に初期化されたすべての要素を含む新しい2次元配列を作成する必要があります。

したがって、入力配列の場合、

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 ]
]

  1. JavaScriptで配列の配列をオブジェクトに変換する

    このようなクリケット選手のパフォーマンスを含む配列の配列があるとします- const arr = [    ['Name', 'V Kohli'],    ['Matches', 13],    ['Runs', 590],    ['Highest', 183],    ['NO', 3],    ['SR', 131.5] ]; このような配列の配列を1つ取り

  2. JavaScriptを使用して、2つの並べ替えられた配列を1つの並べ替えられた配列にマージする

    問題 2つの並べ替えられた数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、両方の配列のすべての要素を新しい配列にマージし、同じ順序で並べ替えられた新しい配列を返す必要があります。 例 以下はコードです- const arr1 = [1, 3, 4, 5, 6, 8]; const arr2 = [4, 6, 8, 9, 11]; const mergeSortedArrays = (arr1 = [], arr2 = []) => {    const res = [];    let i = 0;