2013-10-10 111 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)做你推前

如果你想要的東西在特殊的情況下發生的地方是空你可以這樣做在其他地方。

或者如您所指出的,有時位置爲空,因此檢查方式也是一樣。