2016-05-06 4 views
0

Ich habe ein Objekt-Array, Produkte, mit den Eigenschaften "KategorieID, Kategorie, Name, Preis". Ich möchte ein Objekt-Array mit nur "Kategorie-ID, Kategorie" aus diesem zurückgeben, aber da KategorieID mehrere Male existieren, möchte ich nur die eindeutigen Ergebnisse.uniq [Schlüssel, Wert] aus Objekt-Array mit lodash erhalten

Ich kann beide Felder mit diesem Code erhalten, aber es wird nicht eindeutig sein.

_.map(products, _.partialRight(_.pick, ['categoryid', 'category'])) 

Wie kann ich das einzigartig machen?

+0

Möchten Sie nur mit JS-Lösung oder Lodash ist ein Muss in Ordnung sein? – gurvinder372

+3

http://stackoverflow.com/questions/31740155/lodash-remove-duplicates-from-array – gurvinder372

+1

Wie @ Gurvinder372 erwähnt, können Sie zuerst die eindeutigen Werte erhalten und sie dann zuordnen. '_ (Produkte) .uniqBy ('categoryId'). map (_. partiallyRight (_. pick, ['kategorieID', 'categoryname'])). value()' – ryeballar

Antwort

0

ich es in zwei getrennten Linien tun könnte:

var uniq = _.uniqBy(vm.productList, 'categoryid'); 
vm.categories = _.map(uniq, _.partialRight(_.pick, ['categoryid', 'category']))