合併具有相同鍵值並計數的 JavaScript 物件
假設我們有一個這樣的物件陣列 -
const arr = [{
"value": 10,
"id": "111",
"name": "BlackCat",
}, {
"value": 10,
"id": "111",
"name":
"BlackCat",
}, {
"value": 15,
"id": "777",
"name": "WhiteCat",
}];我們需要編寫一個 JavaScript 函式,該函式會傳入一個這樣的陣列。
然後,該函式應該將所有那些具有 "id" 屬性的公共值的物件合併在一起。
因此,對於上述陣列,輸出應如下所示 -
const output = [{
"value": 10,
"id": "111",
"name": "BlackCat",
"count": 2,
}, {
"value": 15,
"id": "777",
"name": "WhiteCat",
"count": 1,
}]示例
const arr = [{
"value": 10,
"id": "111",
"name": "BlackCat",
}, {
"value": 10,
"id": "111",
"name": "BlackCat",
}, {
"value": 15,
"id": "777",
"name": "WhiteCat",
}];
const combinedItems = (arr = []) => {
const res = arr.reduce((acc, obj) => {
let found = false;
for (let i = 0; i < acc.length; i++) {
if (acc[i].id === obj.id) {
found = true;
acc[i].count++;
};
}
if (!found) {
obj.count = 1;
acc.push(obj);
}
return acc;
}, []);
return res;
}
console.log(combinedItems(arr));輸出
控制檯中的輸出將如下所示 -
[
{ value: 10, id: '111', name: 'BlackCat', count: 2 },
{ value: 15, id: '777', name: 'WhiteCat', count: 1 }
]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP