我正在尝试将开发人员拥有的Node.js应用添加到生产服务器。运行脚本时出现此错误。
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' } }
我唯一能弄清楚的是,在开发服务器上,我们使用v8.9.4,在生产版本中,我们使用8.11.2,尽管我认为在这种情况下这并不重要,也没有听说过任何人否则有这个问题。
答案 0 :(得分:1)
看起来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];
}