как суммировать числовые значения в объекте?
пытаюсь вывести сумму всех чисел, вот сам объект
let obj = {
John: 900,
Ann: 780,
Pete: 300,
month: 'April',
currency: 'USD',
isPayed: false
}
необходимо чтоб функция суммировала все числа в объекте игнорируя другие типы данных. Пишу такой код, он он не работает, не пойму почему
let obj = {
John: 900,
Ann: 780,
Pete: 300,
month: 'April',
currency: 'USD',
isPayed: false
}
function sum(obj) {
let sum = 0;
for (let key in obj) {
if (typeof obj[key] == 'number') {
return sum += obj[key];
}
}
}
ответ должен быть 1980.
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Потому что return не там где надо
let obj = {
John: 900,
Ann: 780,
Pete: 300,
month: 'April',
currency: 'USD',
isPayed: false
}
function sum(obj) {
let sum = 0;
for (let key in obj) {
if (typeof obj[key] == 'number') {
sum += obj[key];
}
}
return sum;
}
console.log(sum(obj));
Автор решения: Pilaton
→ Ссылка
let obj = {
John: 900,
Ann: 780,
Pete: 300,
month: 'April',
currency: 'USD',
isPayed: false,
};
let res = Object.values(obj)
.filter((val) => typeof val === 'number')
.reduce((sum, current) => sum + current, 0);
console.log('res', res);