nodejs v8.11.2. foreach не является ошибкой функции - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь добавить приложение nodejs, которое есть у нас на dev, на рабочий сервер. Я получаю эту ошибку при запуске скрипта.

TypeError: team.player.forEach is not a function

Я знаю, что team.player законный. Я консольный журнал, и это показывает это.

player: 
{ name: 'TEAM',
     shortname: 'TEAM',
     checkname: 'TEAM',
     uni: 'TM',
     class: 'FR',
     gp: '1',
     code: '198',
     rush: { att: '0', yds: '465', gain: '465', loss: '0', td: '0', long: '0' },
     pass: 
      { comp: '0',
        att: '0',
        int: '0',
        yds: '40',
        td: '0',
        long: '0',
        sacks: '0',
        sackyds: '0' },
     fumbles: { no: '3', lost: '1' } } 

Единственное, что я могу выяснить, это то, что на сервере dev мы используем v8.9.4, а эту версию на производстве мы используем 8.11.2, хотя я не думаю, что это должно иметь значение в этом случае, и никто не слышал о ком-либо еще с этой проблемой.

1 Ответ

0 голосов
/ 29 августа 2018

Похоже, player - это объект, а не массив. Если вы хотите перебрать его, вы должны использовать Object.values, Object.keys или Object.entries:

Object.values(team.player).forEach(value => {

});

Object.keys(team.player).forEach(key => {

});

Object.entries(team.player).forEach(([key, value]) => {

});

Или цикл for...in:

for(let key in team.player) {
  if(!team.player.hasOwnProperty(key)) continue;
  const value = team.player[key];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...