2014-11-05 4 views
6

Wenn Lodash _.groupBy-Methode für einen Objektschlüssel verwenden, möchte ich die Schlüssel beibehalten.Lodash groupBy auf Objekt beibehalten keys

Angenommen, ich habe das Objekt:

foods = { 
    apple: { 
     type: 'fruit', 
     value: 0 
    }, 
    banana: { 
     type: 'fruit', 
     value: 1 
    }, 
    broccoli: { 
     type: 'vegetable', 
     value: 2 
    } 
} 

Ich möchte eine Transformation tun, um die Ausgabe

transformedFood = { 
    fruit: { 
     apple: { 
      type: 'fruit', 
      value: 0 
     }, 
     banana: { 
      type: 'fruit', 
      value: 1 
     } 
    }, 
    vegetable: { 
     broccoli: { 
      type: 'vegetable', 
      value: 2 
     } 
    } 
} 

Doing transformedFood = _.groupBy(foods, 'type') gibt die folgende Ausgabe zu erhalten:

transformedFood = { 
    fruit: { 
     { 
      type: 'fruit', 
      value: 0 
     }, 
     { 
      type: 'fruit', 
      value: 1 
     } 
    }, 
    vegetable: { 
     { 
      type: 'vegetable', 
      value: 2 
     } 
    } 
} 

Hinweis wie die ursprünglichen Schlüssel verloren gehen. Wer kennt eine elegante Art, dies zu tun, idealerweise in einer Einzellinie lodash Funktion?

Antwort

0

Wenn Sie lodash fp verwenden, vergessen Sie nicht das letzte Argument accumulator.