क्या इसे लेने के लिए एक अंतर्निहित लॉश समारोह है:
var params = [
{ name: 'foo', input: 'bar' },
{ name: 'baz', input: 'zle' }
];
और यह उत्पादन:
var output = {
foo: 'bar',
baz: 'zle'
};
अभी मैं सिर्फ उपयोग कर रहा हूं 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');
आश्चर्य है कि अगर कोई लॉकेट शॉर्ट-कट है।
_.keyBy
पूरे एरे को एक ऑब्जेक्ट में बदल देगा, जबकि सवाल ज्यादातर एरे में प्रत्येक ऑब्जेक्ट से एक आइटम के रूप में कुंजी और एक अन्य आइटम के मूल्य के रूप में होता है। यदि_.keyBy
उपयोग किया जाता है, तो सभी मूल्य ऑब्जेक्ट होंगे।