Javascript未定义检查速记

时间:2017-10-24 14:18:08

标签: javascript

如果未定义3+深度的对象中的某些内容,我正在寻找一种默认javascript值的方法。例如,像这样:

var finalData = {};
const data = {};
finalData.transactions = data.b.transactions || [];

而不是:

var finalData = {};
const data = {};
if (data.b)
    finalData.transactions = data.b.transactions || [];
else
    finalData.transactions = [];

第一行的问题是,如果数据没有名为b的子项,则会因未定义的访问问题而失败。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

var finalData = {};
const data = {};
finalData.transactions = data.b && data.b.transactions || [];

答案 1 :(得分:0)

你可以通过结合&&和和||:

finalData.transactions = (data && data.b && data.b.transactions) || [];