0

我正在遍历一个 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 子句不应该触发。

4

1 回答 1

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]问题的产物。

于 2013-09-16T17:39:21.537 回答