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

3

我有一个数组,需要获取每个名称年龄的值,然后将名称值作为新键,将年龄值作为新值。

该数组如下

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,但纯JS也不是问题。


1
可能这篇文章可以帮你理解为什么你的代码不起作用:https://dev59.com/OWIj5IYBdhLWcg3w04bd。 - Crescent Fresh
1个回答

6

你目前尝试定义属性的方式行不通。有多种方法可以实现你想要达到的效果,但我通常会这样做(使用ES5):

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

或者像这样,使用ES6的一行代码:

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

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

在你目前的代码中,应该会看到Syntax Error: Unexpected token .,这是在创建对象的那一行出现的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接