2016-12-13 6 views
0

私はLodashの方法は

{ id1: {name: 'John'}, id2: {name: 'Mary'} } 

私はassignに一人一人に財産を必要とするオブジェクトを持つオブジェクトに。私は_.valuesforEachで、私はそれを行うことができます。この

{ id1: {name: 'John', married: false}, id2: {name: 'Mary', married: false} } 

を達成する必要があるが、それは最善の方法のように見えるしていません。 LoDashこれを行う方法はありますか

答えて

3

使用_.mapValues

var res = _.mapValues(data, function(val, key) { 
    val.married = false; 
    return val; 
}) 

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

が所定の位置に変異させ、元のデータの突然変異を防ぐために

_.mapValues(data, function(val, key) { 
    val.married = false; 
}) 
+1

元のデータの突然変異を防ぐには、 '_.assign({}、obj、{married:false})'を使用します。 –

+0

これを行う方法はありますか? – sanchit

+0

@サンチェイ私は答えを更新する – stasovlas

0

ES6バージョン、おそらくは最速の...?

var obj = { id1: {name: 'John'}, id2: {name: 'Mary'} } 
 

 
for (let [key, val] of Object.entries(obj)) 
 
    val.married = false 
 
    
 
console.log(obj)

関連する問題