Có một chức năng lodash tích hợp để thực hiện điều này:
var params = [
{ name: 'foo', input: 'bar' },
{ name: 'baz', input: 'zle' }
];
Và xuất ra cái này:
var output = {
foo: 'bar',
baz: 'zle'
};
Hiện tại tôi chỉ đang sử dụng 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');
Tự hỏi nếu có một đường tắt của nhà nghỉ.

_.keyBysẽ chuyển đổi toàn bộ mảng thành một đối tượng, trong khi câu hỏi chủ yếu là về việc có một mục từ mỗi đối tượng trong mảng làm khóa và một mục khác làm giá trị của nó. Nếu_.keyByđược sử dụng, thì tất cả các giá trị sẽ là đối tượng.