Суммирование числовых свойств объекта приводит к NaN

#javascript #typescript

#javascript #typescript

Вопрос:

У меня есть такой объект:

 {id: 1, planningVerId: 1, planningVersion: null, p1: 0, p2: 0, p3: 0, p4: 45, p5: 55, p6: 0, p7: 0,…}
 

До p12 .
Позже в коде я добавляю sum свойство к объекту. Теперь я хотел бы суммировать p1-p12 значения следующим образом:

 for (const prop in result) {
          if (prop.startsWith('p') amp;amp; prop.length <= 3) { result.sum  = Number(result[prop]) };
        }
 

Я проверил это с помощью консоли, я получаю правильные значения, но результат есть NaN .
Почему?

Ответ №1:

result.sum вначале не определено. Так result.sum 3 что дает NaN :

 let result =  {}
result.sum  = 1
console.log(result.sum); 

Установите result.sum = 0 перед циклом, и он должен работать.

Комментарии:

1. Действительно. Я закомментировал код, где я добавляю свойство ‘sum’ к объекту, и, конечно, в данном случае оно было неопределенным.