2016-06-09 7 views
2

ich das Array haben, muss ich jeden Namen raus und Alter Wert und dann den Namen Wert ein neuer Schlüssel machen und die Alter Wert einen neuen Wert.Return lodash

Das Array

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

Meine vorherigen Code

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

    return obj; 
}); 

console.log(monthlyProfit) // Error 

Erwartung

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

ich uns bin lodash, aber Vanille JS wird kein Problem sein.

+1

http://StackOverflow.com/Questions/19837916/JavaScript-creating-Object-with-dynamic-Theys könnte etwas Licht auf warum Sie Code sind nicht funktioniert. –

Antwort

3

Die Art, wie Sie gerade versuchen, die Eigenschaft zu definieren, wird nicht funktionieren. Es gibt mehrere Möglichkeiten zu erreichen, was Sie erreichen wollen, aber ich würde in der Regel tun es wie folgt (unter Verwendung von ES5):

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

Oder so, wie ES6 Einzeiler:

//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})); 

Sie sollten Syntax Error: Unexpected token . in der Zeile sehen, in der Sie das Objekt in Ihrem aktuellen Code erstellen.