嗨,我正在查詢Amazon API,並且每時每刻都有一個項目沒有圖像。未定義在JavaScript中使用typeof仍然會導致未定義對象的錯誤
if (typeof result.ItemSearchResponse.Items[0].Item[i].SmallImage[0].URL[0] !== undefined) {
//items['image'][i] = result.ItemSearchResponse.Items[0].Item[i].LargeImage[0].URL[0];
console.log(result.ItemSearchResponse.Items[0].Item[i].SmallImage[0].URL[0]);
}
無法讀取屬性「0」如果我註釋掉if語句錯誤消失 - 有沒有用更好的辦法:我想考慮到這一點,但我仍然得到錯誤:類型錯誤typeof - 會佔據對象屬性根本不存在?或者任何人都可以提供建議如何解決?
感謝
這意味着'results.ItemSearchResponse.Items','results.ItemSearchResponse.Items [0] .Item','results.ItemSearchResponse.Items [0] .Item [i] .SmallImage''或'results.ItemSearchResponse.Items [0] .Item [i] .SmallImage [0] .URL'是'undefined'。基本上,您在某個索引處訪問的任何內容都可能是「未定義」的。獨立驗證它們。 –
您需要檢查Object的每個級別,'typeof'不處理RHS中的引用錯誤,'typeof foo; // undefined'但是'typeof foo.bar; //錯誤' –
嘗試記錄每個數組以獲得未定義的數組 console.log(results.ItemSearchResponse.Items [0] .Item) console.log(results.ItemSearchResponse.Items [0] .Item [i ] .SmallImage) console.log(results.ItemSearchResponse.Items [0] .Item [i] .SmallImage [0] .UR L) –