考虑一个包含对象的数组。阵列的每个对象都由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'不是函数 –