无法读取 null 的属性“名称”

Dar*_*ink -1 javascript jquery

所以我的问题是有时会data.content[i].location.name返回一个错误,说无法读取 null 的属性“名称”。

for ( var i = 0; i < len; i++ ) {
    classes.push({
       "id":data.post[i].id,
       "location":data.content[i].location.name,
       "type":data.content[i].type
   });
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?如果 data.content[i].location.name 不为空,我需要它。

Tra*_*s J 7

使用.hasOwnProperty测试属性以防止出现错误

for ( var i = 0; i < len; i++ ) {
 classes.push({
   "id":data.post[i].id,
   "location": data.content[i].location.hasOwnProperty?("name") ?  data.content[i].location.name : "",
   "type":data.content[i].type
 });
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,如果你仔细阅读该错误消息,这一切都是有道理的。:p 它说“null”没有“hasOwnProperty”方法。 (2认同)

Tom*_*fty 5

data.content[i].location.name != null在进行推送之前先检查一下

如果您希望在这种情况下发生一些特别的事情,null您可以在else.

或者,正如你指出,有时locationnull,如此检查过一样。