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);