sto trasformando questo array di oggetti:Sottolineatura: matrice di oggetti su oggetto piatto. Qual è la magia?
[
{
first: {
blah: 1,
baz: 2
}
},
{
second: {
foo: 1,
bar: 2
}
}
]
Per questo semplice oggetto piatto:
{
first: {
blah: 1,
baz: 2
},
second: {
foo: 1,
bar: 2
}
}
I due modi più semplici che ho trovato per farlo usando sottolineatura/LoDash sono:
// Using reduce and extend
_.reduce(myArray, _.extend)
// Using assign and apply
_.assign.apply(_, myArray);
Il codice completo è documentato in un JSBin: http://jsbin.com/kovuhu/1/edit?js,console
Ho letto molta documentazione su apply/bind/call/assign/reduce/extend ... Ma non riesco a capire cosa stia realmente succedendo dietro le tende.
Qualcuno può aiutarmi a capire il segreto dei trucchi magici che entrambi questi one-liner eseguono?
Eseguono magia oscura, poiché * mutano * il primo dei tuoi oggetti. Dovrebbe essere '_.reduce (myArray, _.extend, {}) '(che desugars bene per' estendere ({}, myArray [0]), myArray [1]) ') – Bergi