Lodash defaultTo递归父检查

时间:2017-04-18 11:20:19

标签: javascript json lodash

我试图默认像app.data.user.post.id这样的长JSON对象。问题是user不必存在(或任何父级),在这种情况下必须返回-1。

当我尝试_.defaultTo(app.data.user.post.id, -1)时,我收到预期的错误"无法获得属性'发布'来自undefined"。

我知道这可以通过检查每一位父母的方式来实现,但我想知道是否有更优雅的方法来做到这一点。

1 个答案:

答案 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);