2016-08-12 4 views
0

Daten wie folgt aus:Kartensammlung Artikel von Eigenschaften lodash

[ 
    {type: "one", ...fields}, 
    {type: "one", ...fields}, 
    {type: "two", ...fields} 
] 

sollte dies umgesetzt werden:

{ 
    one: [...itemsWithType == "one"], 
    two: [...itemsWithType == "two"] 
} 

Ich weiß, wie es in vanillas zu tun ES5/ES6 .. Ich suche ein spezieller lodash-Befehl. Ich bin gerade in der Dokumentation verloren, und vielleicht kann mir jemand sagen, wie diese Zubereitung heißt, dass ich es bemerken kann.

ich für eine einfache lodash Funktion suchen wie

mapByProp(collection, 'type'); 

Ja, das wie diese geschrieben werden könnte:

const mapByProp = (array, t) => { 
    return array.reduce((m, i) => { 
    !m[i[t]] && m[i[t]] = []; 
    m[i[t]].push(i); 

    return m; 
    }, {}); 
}; 

Aber wenn es eine lodash Funktion ist, würde ich gerne Verwenden Sie es

Antwort

2

Sie können _.groupBy:

verwenden
var a = [ 
    {type: "one", wow: 1}, 
    {type: "one", wow: 2}, 
    {type: "two", wow: 3} 
]; 

var result = _.groupBy(a, 'type'); 
+1

vielen Dank! – webdeb

Verwandte Themen