@Waniman

Почему не выводит число?

let salaries= {
        John:100,
        Ann:160,
        Pete:130,
    }
    let sum;
    let summ=(obj)=>{
        for(key in obj) {
            sum+=obj[key]; 
        }
    }

    summ(salaries);
console.log(typeof(sum));
console.log(sum);


Тип пишет: number
А на выводе:NaN

Почему?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Начальное значение sum не установлено.
Ну и само решение не из лучших. Использование внешней переменной в функции без особой необходимости - это моветон.
let summ = (obj) => {
  let sum = 0
  for (key in obj) {
    sum += obj[key]
  }
  return sum
}
let sum = summ(salaries)
Ответ написан
Комментировать
E1ON
@E1ON Куратор тега JavaScript
Programming, Gamedev, VR
Потому, что в sum изначально лежит undefined.

Попробуйте так:
let sum = 0;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Перепиши цикл вот так и посмотри.
for (key in obj) {
    console.log(sum, obj[key])
    sum += obj[key];
  }

Кроме этого почитай MDN что выводит цикл for in и чем он отличается от
Object.keys()
И вот это
https://www.oreilly.com/library/view/you-dont-know...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы