Как получить сумму всех value?
У меня есть data и я пытаюсь получить сумму всех value, но получаю отдельно в массиве
const data = [
{
name: "june",
projs: [
{
name: "proj1",
value: 4
},
{
name: "proj77",
value: 2
}
]
},
{
name: "jule",
projs: [
{
name: "proj33",
value: 1
},
{
name: "proj123",
value: 3
}
]
},
{
name: "august",
projs: [
{
name: "proj918",
value: 2
},
{
name: "proj13",
value: 1
}
]
}
];
const getMAxValue = (data) => {
return data.map(val => val.projs.reduce((acc, next) => acc.value + next.value),0)
}
console.log(getMAxValue(data));
Ответы (2 шт):
Автор решения: Miha
→ Ссылка
Метод map() создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
const data = [{
name: "june",
projs: [{
name: "proj1",
value: 4
},
{
name: "proj77",
value: 2
}
]
},
{
name: "jule",
projs: [{
name: "proj33",
value: 1
},
{
name: "proj123",
value: 3
}
]
},
{
name: "august",
projs: [{
name: "proj918",
value: 2
},
{
name: "proj13",
value: 1
}
]
}
];
const getMAxValue = (data) => {
let sum = 0;
for (let object of data) {
sum += object.projs.reduce((acc, next) => acc.value + next.value);
}
return sum;
}
console.log(getMAxValue(data));
Автор решения: ksa
→ Ссылка
получить сумма всех value
Предложу еще такой вариант...
const data = [{
name: "june",
projs: [{
name: "proj1",
value: 4
},
{
name: "proj77",
value: 2
}
]
},
{
name: "jule",
projs: [{
name: "proj33",
value: 1
},
{
name: "proj123",
value: 3
}
]
},
{
name: "august",
projs: [{
name: "proj918",
value: 2
},
{
name: "proj13",
value: 1
}
]
}
];
const getMAxValue = data => (
data.reduce((s, {projs}) => s + projs.reduce((s, {value}) => s + value, 0), 0)
)
console.log(getMAxValue(data));