在 JavaScript 中對 JSON 中的類似項進行分組
假設,我們有一個 JSON 陣列,其中包含有關一些門票的資料,如下所示 −
const arr = [ { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "Regular Ticket to Event" }, { "quantity": "1", "description": "Regular Ticket to Event" }, ];
我們需要編寫一個接收一個這樣的陣列的 JavaScript 函式。該函式應將相似的物件組合在一起並對其 quantity 屬性求和。
如果兩個物件具有相同的 "description" 屬性值,則這些物件將被認為相似。
示例
程式碼如下 −
const arr = [ { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "VIP Ticket to Event" }, { "quantity": "1", "description": "Regular Ticket to Event" }, { "quantity": "1", "description": "Regular Ticket to Event" }, ]; const groupAndAdd = arr => { const res = []; arr.forEach(el => { if (!this[el.description]) { this[el.description] = { description: el.description, quantity: 0 }; res.push(this[el.description]); }; this[el.description].quantity += +el.quantity; }, {}); return res; } console.log(groupAndAdd(arr));
輸出
控制檯中的輸出為 −
[ { description: 'VIP Ticket to Event', quantity: 3 }, { description: 'Regular Ticket to Event', quantity: 2 } ]
廣告