2015-07-12 3 views
0

J'ai une liste de plusieurs objets. Tous avec les mêmes clés. J'essaie de trouver un moyen efficace de réduire les valeurs dans un seul objet.Fusionner des valeurs d'objets avec ImmutableJS

var list = Immutable.fromJS([{ 
    first: 3, 
    second: 4, 
    third: 2 
}, { 
    first: 7, 
    second, 6, 
    third: 8 
}]); 

Voulant retourner:

{first: 10, 
second: 10, 
third: 10} 

Je suis vraiment juste essayer de trouver un moyen de fusionner un objet, mais ajoutez les valeurs au lieu de les remplacer. J'espère que cela a du sens.

+0

faire les deux objets ont les mêmes propriétés ou peut-on avoir des propriétés qui n'existent pas sur l'autre? –

+0

Ils ont tous deux les mêmes propriétés ... Merci. – Adam

Répondre

1

prendre le tableau externe sous forme de liste et lors de l'exécution de réduire, fusionner carte interne

list.reduce(function(a, b){ 
    return a. 
    mergeWith(function(x, y){ 
     return x + y; 
    }, b) 
}).toJS() 
+0

Merci @webserver, cela semble beaucoup mieux que la solution que j'ai trouvée. Je vais essayer ce soir ... – Adam