如果未定义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的子项,则会因未定义的访问问题而失败。
答案 0 :(得分:1)
你可以这样做:
var finalData = {};
const data = {};
finalData.transactions = data.b && data.b.transactions || [];
答案 1 :(得分:0)
你可以通过结合&&和和||:
finalData.transactions = (data && data.b && data.b.transactions) || [];