我正在尋找根據我的物件的值對我的物件的欄位求和
例如,我有一個陣列:
[
{
"month": 4,
"periodDays": 1,
"expected": 5
},
{
"month": 5,
"periodDays": 10,
"expected": 40
},
{
"month": 5,
"periodDays": 11,
"expected": 35
},
{
"month": 6,
"periodDays": 8,
"expected": 20
}
]
而且我要:
[
{
"month": 4,
"periodDays": 1,
"expected": 5
},
{
"month": 5,
"periodDays": 21,
"expected": 75
},
{
"month": 6,
"periodDays": 8,
"expected": 20,
},
我知道我可以使用減速器,但我不能讓它在有條件的情況下作業。
uj5u.com熱心網友回復:
您可以使用它Array.reduce()來創建所需的結果。
我們首先使用month值作為鍵創建一個映射。然后我們將 periodDays 和期望值初始化為零。
對于每個物件,我們然后添加 periodDays 并期望得到每個物件的總和。
最后,我們使用Object.values()將我們的地圖變成一個陣列:
let input = [ { "month": 4, "periodDays": 1, "expected": 5 }, { "month": 5, "periodDays": 10, "expected": 40 }, { "month": 5, "periodDays": 11, "expected": 35 }, { "month": 6, "periodDays": 8, "expected": 20 } ]
const result = Object.values(input.reduce((acc, { month, periodDays, expected }) => {
acc[month] = acc[month] || { month, periodDays: 0, expected: 0 };
acc[month].periodDays = periodDays;
acc[month].expected = expected;
return acc;
}, {}));
console.log('Result:', result)
.as-console-wrapper { max-height: 100% !important; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/483572.html
標籤:javascript 数组 目的
上一篇:拖動移動織物JS控制元件
下一篇:如何將java物件轉換為Json
