Добавить вместе массив объектов
Я пытаюсь сложить массив объектов, используя Reduce, но я не могу заставить его работать.
const testArray = [
{
"T1": 1
},
{
"T2": 12
},
{
"T3": 20
}
]
уменьшить функцию
const q = testArray.reduce((count, x) => count + x.P1Count);
результат = 33
2 ответа
Вы можете получить значения и уменьшить значения.
const
add = (a, b) => a + b,
array = [{ "T1": 1 }, { "T2": 12 }, { "T3": 20 }],
total = array.reduce(
(s, o) => Object.values(o).reduce(add, s),
0
);
console.log(total);
Второй аргумент reduce()
функция будет членом массива, для которого вызывается метод limit. В вашем случае, который будет{ T[i]: ... }
гдеi = 1, 2, 3
,
Вы можете попробовать это:
const testArray = [
{
"T1": 1
},
{
"T2": 12
},
{
"T3": 20
}
]
const x = testArray.reduce((count, x, index) => {
const key = `T${index+1}`; // prepare the dynamic key T1, T2,...
return count + x[key];
}, 0); // <-- 0 is the initial value of sum
console.log(x)