如何修复这个javascript foreach错误



我有一个形式的对象

res = { 2019: 
[
{id: 1, points: 435},
{id: 830, points: 230},
...
]
}

和一个数组季节,它只是一堆年份=>["2015","2016",…"2019"]

seasons.forEach(season => {
res[season].forEach(item => {
console.log(item);
});
});

上面的截图正确地记录了每个结果,但我仍然得到这个错误:未处理的拒绝(TypeError(:无法读取未定义的的属性"forEach">

您可以使用可选的链接来轻松解决此问题。只需在嵌套的forEach之前添加一个问号,如下所示:

seasons.forEach(season => {
res[season]?.forEach(item => {
console.log(item);
});
});

注意:正如链接文档的兼容性部分所提到的,并不是所有浏览器都支持可选的链接,所以你可能想使用一个transpiler(比如Babel(

有时您的对象可能是undefined,因此您应该验证密钥是否存在:

const ob = res = {
2015: [{
id: 1,
points: 435
},
{
id: 830,
points: 230
},
],
2019: [{
id: 1,
points: 435
},
{
id: 830,
points: 230
},
]
}
const seasons = ["2015", "2016", "2019"]
seasons.forEach(season => {
if (res[season]) {
res[season].forEach(item => {
console.log(item);
});
}
});

最新更新