如果部分亚马逊产品丢失,则会出现错误。例如,我可以执行此项检查: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
- 但代码看起来更优雅。