Javascript - 检查 Amazon Objects 以查看是不是已定义
Posted
技术标签:
【中文标题】Javascript - 检查 Amazon Objects 以查看是不是已定义【英文标题】: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,则会引发错误。我需要检查数据下的每个对象吗?有没有更简单的方法?
我正在考虑尝试...捕获并捕获错误,但我确信之前有人遇到过这种情况。
【问题讨论】:
【参考方案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,但代码看起来更优雅。
【讨论】:
以上是关于Javascript - 检查 Amazon Objects 以查看是不是已定义的主要内容,如果未能解决你的问题,请参考以下文章