Javascript 无法读取属性';名称';空的

Javascript 无法读取属性';名称';空的,javascript,jquery,Javascript,Jquery,所以我的问题是,有时data.content[i].location.name返回一个错误,表示无法读取null的属性“name” 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 }); } for(变

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

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
   });
}
for(变量i=0;i

如何解决此问题?我需要data.content[I].location.name(如果不为空)。

只要检查一下data.content[I].location.name!=执行推送之前,为空

如果您希望在
null
的情况下发生特殊情况,您可以在
else
中执行此操作


或者,正如您所指出的,有时
位置
,因此也要以同样的方式检查。

测试使用的属性,以防止出现错误

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
 });
}
for(变量i=0;i
在这些情况下,
名称
位置
是否为空?您所说的“修复”是什么意思?修复它可以防止对象为空,也可以意味着在尝试访问名称属性之前检查对象是否存在您是否将该信息传递给“数据”?返回一个
Uncaught类型错误:无法调用null的方法'hasOwnProperty'
error:/n然后对
content[i]
上的
location
执行相同的测试<代码>位置
为null:SRight,如果仔细阅读该错误消息,一切都有意义:p它是说
null
没有
hasOwnProperty
方法。是的,明白了!-谢谢你的提示!