2016-06-09 66 views
2

我得到这个数组,我需要出去每个年龄值,然后进行值一个新的密钥和年龄重视新的价值。返回对象键和值从一个阵列,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} 
] 

我我们但是香草JS不会成为问题。

+1

http://stackoverflow.com/questions/19837916/javascript-creating-object-with-dynamic-keys可能会阐明为什么你的代码无法正常工作。 –

回答

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 .位于您在当前代码中创建对象的那一行。