如果部分亞馬遜產品丟失,則會出現錯誤。例如,我可以執行此項檢查:Javascript - 檢查亞馬遜對象以查看是否定義
但如果OfferSummary未定義,則會引發錯誤。我需要檢查數據下的每個對象嗎?有更容易的方法嗎?
我在想做一個嘗試......捕捉並捕獲錯誤,但我確信有人遇到過這個問題。
如果部分亞馬遜產品丟失,則會出現錯誤。例如,我可以執行此項檢查:Javascript - 檢查亞馬遜對象以查看是否定義
但如果OfferSummary未定義,則會引發錯誤。我需要檢查數據下的每個對象嗎?有更容易的方法嗎?
我在想做一個嘗試......捕捉並捕獲錯誤,但我確信有人遇到過這個問題。
是的,您需要檢查每一步或將檢查包裝在try catch塊中。
目前您正嘗試訪問未定義的屬性,該屬性不存在。
if (success.data[i] && success.data[i].OfferSummary[0] &&
success.data[i].OfferSummary[0].LowestNewPrice[0] &&
success.data[i].OfferSummary[0].LowestNewPrice[0].Amount !== undefined) {}
//OR
var amount = null;
try {
amount = success.data[i].OfferSummary[0].LowestNewPrice[0].Amount;
} catch(err) {}
if (amount !== undefined){}
如果您使用lodash
你可以使用函數_.get:
var amount = _.get(success, 'data[' + i + '].OfferSummary[0].LowestNewPrice[0].Amount', 0);
第三個參數是將在這條道路不便的情況下返回沒有定義的默認值。
其實在引擎蓋下它只是一組if
- 但代碼看起來更優雅。