Gibt es eine eingebaute Lodash-Funktion, um dies zu übernehmen:
var params = [
{ name: 'foo', input: 'bar' },
{ name: 'baz', input: 'zle' }
];
Und geben Sie Folgendes aus:
var output = {
foo: 'bar',
baz: 'zle'
};
Im Moment benutze ich nur Array.prototype.reduce()
:
function toHash(array, keyName, valueName) {
return array.reduce(function(dictionary, next) {
dictionary[next[keyName]] = next[valueName];
return dictionary;
}, {});
}
toHash(params, 'name', 'input');
Ich frage mich, ob es eine Abkürzung für Lodash gibt.
_.keyBy
wandelt das gesamte Array in ein Objekt um, während die Frage hauptsächlich darin besteht, ein Element von jedem Objekt im Array als Schlüssel und ein anderes Element als Wert zu haben. Wenn_.keyBy
verwendet, sind alle Werte Objekte.