我有這個陣列
bidsList = [
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'B',
awardedCapacity:10,
},
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'A',
awardedCapacity:3,
},
{
supplierName:'B',
awardedCapacity:5,
},
{
supplierName:'C',
awardedCapacity:2,
},
我需要有單獨的陣列,當我通過這個陣列進行迭代時,我將計算供應商名稱相同的所有授予的容量的總數
例如,我應該有陣列,在那里我將有這個輸出
let newArr = [
{
supplierName: 'A',
totalAwarded: 13,
},
{
supplierName:'B',
totalAwarded: 15,
},
{
supplierName:'C',
totalAwarded: 2,
}
]
因為在之前的陣列中,我有three 一個供應商名稱所在的物件,A當我將他們獲得的容量相加時,我在另一個物件中得到了 13 的供應商名稱
uj5u.com熱心網友回復:
您可以嘗試使用Array.prototype.reduce()如下方式:
let bidsList = [
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'B',
awardedCapacity:10,
},
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'A',
awardedCapacity:3,
},
{
supplierName:'B',
awardedCapacity:5,
},
{
supplierName:'C',
awardedCapacity:2,
}
];
let newArr = [];
bidsList.reduce(function(acc, val) {
if (!acc[val.supplierName]) {
acc[val.supplierName] = { supplierName: val.supplierName, awardedCapacity: 0 };
newArr.push(acc[val.supplierName])
}
acc[val.supplierName].awardedCapacity = val.awardedCapacity;
return acc;
}, {});
console.log(newArr);
uj5u.com熱心網友回復:
Array.reduce
const newArr = bidsList.reduce((a, o) => {
const index = a.findIndex(x => x.supplierName === o.supplierName);
const s = a[index > -1 ? index: a.push({supplierName:o.supplierName, awardedCapacity:0}) - 1];
s.awardedCapacity = o.awardedCapacity;
return a;
}, [])
uj5u.com熱心網友回復:
使用Array.reduce方法
var bidsList = [
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'B',
awardedCapacity:10,
},
{
supplierName:'A',
awardedCapacity:5,
},
{
supplierName:'A',
awardedCapacity:3,
},
{
supplierName:'B',
awardedCapacity:5,
},
{
supplierName:'C',
awardedCapacity:2,
}];
var result = bidsList.reduce((a, c) => {
let supplier = a.find(e => e.supplierName == c.supplierName);
if (supplier)
supplier.totalAwarded = c.awardedCapacity;
else
a.push({
supplierName: c.supplierName,
totalAwarded: c.awardedCapacity
});
return a;
}, []);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/363814.html
標籤:javascript 算法
下一篇:遞回有序節點著色
