Lodash uniq – choisissez quel objet en double pour garder un rang d'objets

Existe-t-il un moyen de spécifier quel élément de tableau à conserver en fonction d'une clé non vide. Il semble que uniq conserve la première occurrence.

par exemple:

var fruits = [ {'fruit': 'apples', 'location': '', 'quality': 'bad'}, {'fruit': 'apples', 'location': 'kitchen', 'quality': 'good'}, {'fruit': 'pears', 'location': 'kitchen', 'quality': 'excellent'}, {'fruit': 'oranges', 'location': 'kitchen', 'quality': ''} ]; console.log(_.uniq(fruits, 'fruit')); /* output is: Object { fruit="apples", quality="bad", location=""} Object { fruit="pears", location="kitchen", quality="excellent"} Object { fruit="oranges", location="kitchen", quality=""} */ 

Existe-t-il un moyen de dire à lodash uniq de choisir le double qui a une valeur de localisation? Il garde les mauvaises pommes au lieu des bonnes pommes.

~~~

Ma solution finale était en utilisant sortByOrder inside uniq

 console.log(_.uniq(_.sortByOrder(fruits, ['fruit','location'], ['asc','desc']),'fruit')) 

A abouti à:

 Object { fruit="apples", location="kitchen", quality="good"} Object { fruit="oranges", location="kitchen", quality=""} Object { fruit="pears", location="kitchen", quality="excellent"} 

D'après ce que je vois dans docs à https://lodash.com/docs#uniq, il n'y a aucun moyen de le spécifier. Probablement, ce que vous voulez faire, c'est un fruit de groupe, puis vous pouvez choisir la qualité dont vous avez besoin. Cela dépend du contexte et pourquoi vous en avez besoin.

Pouvez-vous expliquer votre problème un peu plus?