基於 JavaScript 中鍵屬性對物件進行分組
我們有一個 parentArray,它包含許多子陣列,每個子陣列都是一個包含兩個屬性(鍵和值)的物件陣列。在一個子陣列中,可以確認兩個物件不能有相同的鍵,但是所有子陣列都有一組相同的 n 個鍵,其中 n 是子陣列的大小。
我們的工作是準備一個物件,其中鍵為物件的鍵,值是包含該特定鍵的所有值的陣列。
以下是一個示例 parent 陣列−
const parentArray = [[
{
key: 123,
value: 'India'
}, {
key: 124,
value: 'USA'
}, {
key: 125,
value: 'Japan'
}, {
key: 126,
value: 'Denmark'
}, {
key: 127,
value: 'Austria'
},
], [
{
key: 124,
value: 'Kenya'
}, {
key: 126,
value: 'UK'
}, {
key: 123,
value: 'Germany'
}, {
key: 127,
value: 'Spain'
}, {
key: 125,
value: 'Portugal'
},
]];我們將遍歷 parent 陣列,然後逐個遍歷所有子陣列,如果我們找到匹配的鍵,我們會將其推入值陣列,否則我們會建立一個新的值陣列。
完整的程式碼如下所示−
const parentArray = [[
{
key: 123,
value: 'India'
}, {
key: 124,
value: 'USA'
}, {
key: 125,
value: 'Japan'
}, {
key: 126,
value: 'Denmark'
}, {
key: 127,
value: 'Austria'
},
], [
{
key: 124,
value: 'Kenya'
}, {
key: 126,
value: 'UK'
}, {
key: 123,
value: 'Germany'
}, {
key: 127,
value: 'Spain'
}, {
key: 125,
value: 'Portugal'
},
]];
const map = {};
parentArray.forEach(arr => {
arr.forEach(obj => {
const { key, value } = obj;
if(map[key]){
map[key].push(value);
}else{
map[key] = [value]
}
})
});
console.log(map);控制檯中的輸出結果如下−
{
'123': [ 'India', 'Germany' ],
'124': [ 'USA', 'Kenya' ],
'125': [ 'Japan', 'Portugal' ],
'126': [ 'Denmark', 'UK' ],
'127': [ 'Austria', 'Spain' ]
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP