使用lodash从数组返回一个对象键和值

时间:2016-06-09 16:43:49

标签: javascript lodash

我有这个数组,我需要输出每个名称年龄值,然后将名称值设为新密钥, 年龄值为新值。

数组

var arr = [
 {name: "jack", age: 32 },
 {name: "jane", age: 34 }
]

我之前的代码

var monthlyProfit = _.map(arr, function(v) {
  var obj = {
    v.name: v.age
  };

  return obj;
});

console.log(monthlyProfit) // Error

期望

var arr = [
 {jack: 32},
 {jane: 34}
]

我正在使用lodash,但vanilla JS不会有问题。

1 个答案:

答案 0 :(得分:3)

您目前正在尝试定义该属性的方式无效。有多种方法可以实现您想要实现的目标,但我通常会这样做(使用ES5):

var monthlyProfit = _.map(arr, function(v) {
  return {[v.name]  : v.age};
});

或者像这样,作为ES6单行:

//using lodash
var monthlyProfit = _.map(arr, v => ({[v.name] : v.age}));

//or, pure ES6 without lodash:
var monthlyProfit = arr.map(v => ({[v.name] : v.age}));

您应该在当前代码中创建对象的行上看到Syntax Error: Unexpected token .