Existe-t-il une fonction lodash intégrée pour prendre ceci:
var params = [
{ name: 'foo', input: 'bar' },
{ name: 'baz', input: 'zle' }
];
Et sortez ceci:
var output = {
foo: 'bar',
baz: 'zle'
};
En ce moment, j'utilise juste 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');
Vous vous demandez s'il existe un raccourci lodash.
_.keyBy
transformera le tableau entier en objet, alors que la question est principalement d'avoir un élément de chaque objet dans le tableau comme clé et un autre élément comme valeur. Si_.keyBy
est utilisé, toutes les valeurs seront des objets.