2016-10-22 1 views
1

Ich habe ein Objekt, das diese heute so etwas wie dieseWie man ein Objekt mit gegebenem Schlüssel unter Verwendung von lodash abbildet?

{id: "2", name: "foo", price: "1"} 

Ich mag diese Transformation auf die folgenden

{2: {id: "2", name: "foo", price: "1"}} 

Ich bin in der Lage sieht zu erreichen, wenn ich diese Aufgabe mit einem einfachen Array wickle wie so dank der freundlichen keyBy Methode für Array

_.keyBy([action.response], function(item) { return item.id; }); 

Was ich natürlich ist das gleiche Ergebnis bevorzugen würde, aber ohne thi wickeln s mit einem Array zuerst. Bietet transform/reduce oder eine andere lodash v4-Methode diese Funktionalität?

Antwort

3

Sie können dies mit einer Funktion direkt tun:

function convert(obj) { 
var result = {} 
result[obj.id] = obj 
return result 
} 

Ist das, was Sie suchen?

4

Short-Lösung basierend auf ES6 computed property names: { [obj.id]: obj }

Beispiel:

var obj = {id: "2", name: "foo", price: "1"} 
 
var transformed = { [obj.id]: obj } 
 
console.log(transformed)

Verwandte Themen