【问题标题】:Javascript - Check Amazon Objects to see if definedJavascript - 检查 Amazon Objects 以查看是否已定义
【发布时间】:2016-06-18 18:38:55
【问题描述】:

如果缺少部分亚马逊产品,我会收到错误消息。例如,我可以做这个检查:

typeof success.data[i].OfferSummary[0].LowestNewPrice[0].Amount !== "undefined"

但如果未定义 OfferSummary,则会引发错误。我需要检查数据下的每个对象吗?有没有更简单的方法?

我正在考虑尝试...捕获并捕获错误,但我确信之前有人遇到过这种情况。

【问题讨论】:

    标签: javascript amazon


    【解决方案1】:

    是的,您需要在每个步骤中检查或将检查包装在 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){}
    

    【讨论】:

      【解决方案2】:

      如果你使用lodash,你可以使用函数_.get

      var amount = _.get(success, 'data[' + i + '].OfferSummary[0].LowestNewPrice[0].Amount', 0);
      

      第三个参数是默认值,如果该路径中的smth没有定义,则返回。

      实际上,在底层它只是一组if-checks,但代码看起来更优雅。

      【讨论】:

        猜你喜欢
        • 2018-05-21
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多