2013-10-10 73 views
-3

的所以我的问题是,有时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 
    }); 
} 

我怎样才能解决这个问题?

+0

是属性'name'或在这些情况下'location'空? – aL3891

+2

你是什么意思的“修复”?修复它可以防止对象永远为空或它可能意味着在尝试访问名称属性之前检查对象是否存在 – kinakuta

+0

您是否将该信息传递给“数据”? – Krishna

回答

4

测试使用.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 
}); 
} 
+0

返回'未捕获的类型错误:无法调用方法'hasOwnProperty'为null错误:/ – Darkagelink

+0

然后对内容上的'location'执行相同的测试测试' –

+0

哦,我明白了。 'location'为空:S – Darkagelink

3

只是做一个检查,如果(data.content [I] .location.name!= NULL)做你推前

如果你想要的东西在特殊的情况下发生的地方是空你可以这样做在其他地方。

或者如您所指出的,有时位置为空,因此检查方式也是一样。