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

最初の値に基づいて配列を分割する-JavaScript


このような数値の配列の配列があるとします-

const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];

各サブ配列は、厳密に2つの要素を含むようにバインドされています。同様の最初の値を持つサブ配列のすべての2番目の要素がグループ化される新しい配列を構築する関数を作成する必要があります。

したがって、上記の配列の場合、出力は-

のようになります。
const output = [
   [45, 34, 49],
   [34, 67],
   [78, 65]
];

Map()を利用して必要な配列を作成するArray.prototype.reduce()メソッドを利用できます。

以下はコードです-

const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
const constructSimilarArray = (arr = []) => {
   const creds = arr.reduce((acc, val) => {
      const { map, res } = acc;
      if(!map.has(val[0])){
         map.set(val[0], res.push([val[1]]) - 1);
      }else{
         res[map.get(val[0])].push(val[1]);
      };
      return { map, res };
   }, {
      map: new Map(),
      res: []
   });
   return creds.res;
};
console.log(constructSimilarArray(arr));

出力

これにより、コンソールに次の出力が生成されます-

[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]

  1. JavaScriptのObject.keys()。map()VS Array.map()

    以下は、JavaScriptでObject.keys()。map()とArray.map()を示すコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title>

  2. JavaScriptの値に基づいてオブジェクトをグループ化する方法は?

    以下は、JavaScriptの値に基づいてオブジェクトをグループ化するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>