@Rapen

В объекте почему title стал NAN?

Выполнял задачи по javascript, написать функцию multiplyNumeric которая принимает на вход объект и возвращает объект в котором все числовые значения у свойств умножены на 2. В Столкнулся с магией, в условии до использования метода isNaN, я указал в нем, obj[key] == NaN, функция в принципе делало свое дело, значения стали 2x, но свойство title стал NaN, , даже при строгом === в условии, он получается NaN, ведь нигде не присваивалось в это свойство. Почему же title стал NaN?
var image = {
    width: 100,
    height: 400,
    title: 'Cool image'
};

function multiplyNumeric(obj) { 
    for(var key in obj) { 
    
          if(isNaN(obj[key])) { // при : obj[key] ==(===) NaN; title становиться NaN 
          
            continue;
          
          } else { 
          
          obj[key] *= 2;<code>
          
    
    }    
return obj;
}
console.log(mmultiplyNumeric(image));
// Object {width: 200, height: 800, title: NaN} Если проверить как ( obj[key] ==(===) NaN); 
//Object {width: 200, height: 800, title: "Cool image"} С проверкой isNaN.
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
alsopub
@alsopub
Значение NaN не равно никакому другому числу, включая само NaN.

Чтобы проверить переменную на NaN, используйте специальную функцию isNaN.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
crazy_leo
@crazy_leo
Frontend Developer
Вроде у меня все норм выводится
multiplyNumeric(image)
// output => Object {width: 200, height: 800, title: "Cool image"}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы