我如何在Lodash中做到这一点?

我有一个像数据库结果一样的结构数组

var arr = [{name: 'a', age: 23}, {name: 'b', age: 24}, {name: 'c', age: 35}] 

我想创build一个新的对象,值如下所示:

 var new_arra = {a: 23, b: 24, c: 35} 

我如何在lodash中做到这一点?

我尝试了下面的方法:

 var result = _.forEach(results, function(index) { var result = _.map(index, function(value, prop) { return {prop: prop, value: value}; }); }); 

使用ES5 – 迭代Array#reduce ,初始值为空对象。 在每次迭代中,将名称设置为键,并将年龄设置为值。

 var arr = [{name: 'a', age: 23}, {name: 'b', age: 24}, {name: 'c', age: 35}]; var result = arr.reduce(function(obj, o) { obj[o.name] = o.age; return obj; }, {}); console.log(result); 

你可以用纯JS来做到这一点:

 var arr = [{ name: 'a', age: 23 }, { name: 'b', age: 24 }, { name: 'c', age: 35 }] var result = {}; arr.forEach(function(item) { result[item.name] = item.age }); console.log(result); 

你只需要这两条线

 let newData = {}; arr.map((item)=>newData[item.name]=item.age); console.log(newData); 

或者你也可以使用lodash做到这一点

  let newData = {}; _.map(arr,(item)=>newData[item.name]=item.age);