есть ли способ указать, какой элемент массива сохранить на основе непустого ключа. кажется, что uniq просто сохраняет первое вхождение.
e.g:
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=""}
*/
Есть ли способ сказать lodash uniq выбрать дубликат со значением местоположения? Это сохранение плохих яблок вместо хороших.
~~~
Мое окончательное решение заключалось в использовании sortByOrder внутри uniq.
console.log(_.uniq(_.sortByOrder(fruits, ['fruit','location'], ['asc','desc']),'fruit'))
привело к:
Object { fruit="apples", location="kitchen", quality="good"}
Object { fruit="oranges", location="kitchen", quality=""}
Object { fruit="pears", location="kitchen", quality="excellent"}