2016-05-06 3 views
0

У меня есть массив объектов, товары со свойствами "categoryid, categoryname, name, price". Я хочу вернуть массив объектов с помощью только "categoryid, categoryname", но поскольку categoryid существует несколько раз, я хочу только уникальные результаты.получить uniq [ключ, значение] из массива объектов с lodash

Я могу получить оба поля с помощью этого кода, но он не будет уникальным.

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

Как я могу сделать это уникальным?

+0

Вы были бы хорошо с JS единственным решением или Lodash является обязательным? – gurvinder372

+3

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

+1

Как упоминалось в @ gurvinder372, вы можете сначала получить уникальные значения, а затем отобразить их. '_ (products) .uniqBy ('categoryId'). map (_. partialRight (_. pick, ['categoryid', 'categroyname'])). value()' – ryeballar

ответ

0

я мог бы сделать это в двух отдельных строках:

var uniq = _.uniqBy(vm.productList, 'categoryid'); 
vm.categories = _.map(uniq, _.partialRight(_.pick, ['categoryid', 'category'])) 
Смежные вопросы