Javascript-检查Amazon对象以查看是否已定义
如果亚马逊产品的一部分丢失,我会得到一个错误。例如,我可以执行以下检查:Javascript-检查Amazon对象以查看是否已定义,javascript,amazon,Javascript,Amazon,如果亚马逊产品的一部分丢失,我会得到一个错误。例如,我可以执行以下检查: typeof success.data[i].OfferSummary[0].LowestNewPrice[0].Amount !== "undefined" 但如果没有定义OfferSummary,这将抛出一个错误。我需要检查数据下的每个对象吗?有没有更简单的方法 我想试试。。。捕获并捕获错误,但我确信以前有人遇到过这种情况。是的,您需要在每个步骤进行检查,或者将检查包装在try-catch块中 目前,您正在尝试访问未
typeof success.data[i].OfferSummary[0].LowestNewPrice[0].Amount !== "undefined"
但如果没有定义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
,则可以使用以下功能:
第三个参数是默认值,如果未定义此路径中的smth,将返回该值
实际上,在引擎盖下,它只是一组if
-检查,但代码看起来更优雅
var amount = _.get(success, 'data[' + i + '].OfferSummary[0].LowestNewPrice[0].Amount', 0);