Lodash向对象添加属性的方式

san*_*hit 0 javascript lodash

我有一个对象

{ id1: {name: 'John'}, id2: {name: 'Mary'} }
Run Code Online (Sandbox Code Playgroud)

我需要给assign每个人一个财产。我需要实现这一目标

{ id1: {name: 'John', married: false}, id2: {name: 'Mary', married: false} }
Run Code Online (Sandbox Code Playgroud)

我可以做到这一点forEach_.values,但它似乎并不像最好的办法。有没有LoDash方法来做到这一点

sta*_*las 5

_.mapValues

var res = _.mapValues(data, function(val, key) {
    val.married = false;
    return val;
})
Run Code Online (Sandbox Code Playgroud)

防止原始数据的变异

var res = _.mapValues(data, function(val, key) {
    return _.merge({}, val, {married: false});
})
Run Code Online (Sandbox Code Playgroud)

原地变异

_.mapValues(data, function(val, key) {
    val.married = false;
})
Run Code Online (Sandbox Code Playgroud)