最初の値に基づいて配列を分割する-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 ] ]
-
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>
-
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>