我嘗試將“基準”和“材料”必須匹配的所有“Menge”和“Fehler”值相加。結果應該看起來像一個 Excel Pivot。
到目前為止,這是我的代碼,但我不知道如何添加也必須匹配的第二個鍵“Material”。我希望你能理解我試圖解釋的內容。
var arr = [{
"Datum": {
"date": "2000-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "123",
"Menge": 100,
"Fehler": 5
}, {
"Datum": {
"date": "2000-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "123",
"Menge": 5,
"Fehler": 1
}, {
"Datum": {
"date": "2000-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "123",
"Menge": 6,
"Fehler": 65
}, {
"Datum": {
"date": "2000-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "222",
"Menge": 10,
"Fehler": 5
}, {
"Datum": {
"date": "2000-01-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "444",
"Menge": 29,
"Fehler": 1
}, {
"Datum": {
"date": "2000-01-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Berlin"
},
"Material": "123",
"Menge": 1,
"Fehler": 1
}]
const result = Object.values(arr.reduce((acc, obj) => {
const [Datum] = obj.Datum.date.split(' ');
const Menge = (acc[Datum] ?.Menge obj.Menge) || obj.Menge;
const Fehler = (acc[Datum] ?.Fehler obj.Fehler) || obj.Fehler;
acc[Datum] = {
Datum,
Menge,
Fehler
};
return acc;
}, {}));
console.log(result)
但結果應如下所示:
[{
"Datum": "2000-01-01",
"Material": "123",
"Menge": 111,
"Fehler": 71
},
{
"Datum": "2000-01-01",
"Material": "222",
"Menge": 10,
"Fehler": 5
},
{
"Datum": "2000-01-02",
"Material": "444",
"Menge": 29,
"Fehler": 1
},
{
"Datum": "2000-01-02",
"Material": "123",
"Menge": 1,
"Fehler": 1
}
]
非常感謝你
uj5u.com熱心網友回復:
您需要與Datum和的組合鍵Material。
const
data = [{ Datum: { date: "2000-01-01 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "123", Menge: 100, Fehler: 5 }, { Datum: { date: "2000-01-01 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "123", Menge: 5, Fehler: 1 }, { Datum: { date: "2000-01-01 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "123", Menge: 6, Fehler: 65 }, { Datum: { date: "2000-01-01 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "222", Menge: 10, Fehler: 5 }, { Datum: { date: "2000-01-02 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "444", Menge: 29, Fehler: 1 }, { Datum: { date: "2000-01-02 00:00:00.000000", timezone_type: 3, timezone: "Europe/Berlin" }, Material: "123", Menge: 1, Fehler: 1 }],
result = Object.values(data.reduce((acc, { Datum: { date }, Material, Menge, Fehler }) => {
const
Datum = date.slice(0, 10),
key = [Datum, Material].join('|');
acc[key] ??= { Datum, Material, Menge: 0, Fehler: 0 };
acc[key].Menge = Menge,
acc[key].Fehler = Fehler;
return acc;
}, {}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/410842.html
標籤:
