考慮一個包含對象的數組。陣列的每個對象都由label
和value
屬性組成。我希望能夠比較數組中的每個對象,並且如果標籤相同,請將它們的值相加,以便標籤不重複並且具有所有先前值的總和。迭代javascript數組和總和屬性
一樣,例如,如果陣列是這樣的:
[{
label: "A",
value: 10
}, {
label: "B",
value: 20
}, {
label: "C",
value: 30
}, {
label: "C",
value: 40
}, {
label: "D",
value: 12
}, {
label: "D",
value: 23
}]
最後,我將有隻有四個標籤(A,B,C,d),值10 A中的陣列, 20 B,70 C和35 D.
我試圖用一個for循環:
for (i = 1; i < transformation.length; i++) {
if (transformation[i-1].label == transformation[i].label) {
result.label.push = transformation[i].label;
result.value.push = transformation[i-1].value + transformation[i].value;
}
};
但我來到這裏停留,並就如何處理非重複的值沒有想法。 我需要最後一個數組仍然是一個數組,而不是一個對象。
隨後'Object.entries(總和).MAP(A =>({標號:一個[0],value:a [1]}));'會用'{label:「X」,value:y}''對象創建一個數組。 – Xufox
@tymeJV由於我不能在結果上使用'.map'函數,所以我不需要它。它返回一個對象而不是返回一個數組。 –
@Xufox我的控制檯說'Object.entries'不是函數 –