基於 JavaScript 中元素對陣列進行分組
假設,我們有一個如下所示的數字陣列 −
const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
每個子陣列最多包含兩個元素。我們需要編寫一個函式來構建一個新陣列,其中具有相同第一個值的子陣列的所有第二個元素都分組在一起。
因此,對於上述陣列,輸出看起來應該像 −
const output = [ [45, 34, 49], [34, 67], [78, 65] ];
我們可以利用 Array.prototype.reduce() 方法,利用 Map() 的幫助來構建所需的陣列。
因此,讓我們編寫此函式的程式碼 −
示例
程式碼如下 −
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 ] ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP