我正在迭代api对象,某些结果没有特定的属性。如果属性丢失,我用它来制作一个占位符:
if (data.track[i].image == undefined) {
urlstring = "path/to/image";
} else {
urlstring = data.track[i].image[4][0];
}
不幸的是,我仍然得到错误Uncaught TypeError: Cannot read property '0' of undefined
,即使未定义属性也不应触发else子句。
答案 0 :(得分:0)
您的问题是data.track[i].image[4]
是undefined
,而您的代码似乎需要一个数组。
您可以使用
if (data.track[i].image && data.track[i].image[4]) {
urlstring = data.track[i].image[4][0];
} else {
urlstring = "path/to/image";
}
注意:我认为data.track[i]
和data.toptracks.track[i]
之间的混合是问题的假象。