JS遍历对象列表playedWith数组输出undefined的解决方法
问题原因
- JS 中数组获取元素个数的属性是
length,不是width。width一般用于获取 DOM 元素的宽度属性,普通数组不存在该属性,取值会得到undefined。你代码中的循环判断条件a < undefined结果永远为 false,外层循环根本不会执行,自然没有预期输出。你单独打印单个元素能正常运行,是因为直接按索引取值,跳过了错误的循环判断步骤。
正确实现方案
方案1:修正原有循环写法
仅需要把两处width替换为length即可正常运行:
for (let a = 0; a < clubs.length; a++) { for (let b = 0; b < clubs[a].playedWith.length; b++) { console.log(clubs[a].playedWith[b]); } }
方案2:更简洁的 forEach 写法
可读性更高,不需要手动维护索引变量:
clubs.forEach(club => { club.playedWith.forEach(id => console.log(id)) })
内容的提问来源于stack exchange,提问作者danielko
相关产品推荐
相关产品推荐

