我试图默认像app.data.user.post.id
这样的长JSON对象。问题是user
不必存在(或任何父级),在这种情况下必须返回-1。
当我尝试_.defaultTo(app.data.user.post.id, -1)
时,我收到预期的错误"无法获得属性'发布'来自undefined"。
我知道这可以通过检查每一位父母的方式来实现,但我想知道是否有更优雅的方法来做到这一点。
答案 0 :(得分:2)
Lodash功能_.get可用于解析路径'并且还可以采用默认值:
var user = "username6";
var result = categories.filter(x => x[user])[0][user];

var app ={data: {user:null}} ;//.post.id
var res = _.get(app, 'data.user.post.id', -1);
console.log(res);