2016-05-17 13 views
6

Mam zmienną lodash;Lodash map i return unique

var usernames = _.map(data, 'usernames'); 

który produkuje następujące;

[ 
    "joebloggs", 
    "joebloggs", 
    "simongarfunkel", 
    "chrispine", 
    "billgates", 
    "billgates" 
] 

W jaki sposób mogę skorygować wyrażenie "ZLBA" tak, aby zwracało tylko tablicę unikatowych wartości? na przykład

var username = _.map(data, 'usernames').uniq(); 
+1

czy próbowałeś 'uniqBy'? '_.uniqBy (dane, 'nazwa użytkownika')' –

+0

Chciałbym, żeby dane pozwoliły mi to zrobić ... ale z tej okazji nie mogę. – MindVox

Odpowiedz

24

Wiele sposobów, ale uniq() nie jest metodą w tablicy, jest to metoda "lodash".

_.uniq(_.map(data, 'usernames')) 

Lub:

_.chain(data).map('usernames').uniq().value() 

(. Drugi to niesprawdzone i ewentualnie źle, ale to zamknij)

Jak wspomniano w komentarzu, w zależności od tego, co dane rzeczywiście jest, możesz zrobić to wszystko w jednym ujęciu bez wcześniejszego wyciągania wszystkiego, co jest usernames.

+0

Dzięki, chociaż wspomniałem o czymś szczególnym. Jestem świadomy, że uniq() to lodasz. – MindVox

+0

@KarlBateman \t Dobrze, ale próbujesz wywołać metodę LINAS na tablicy. To nie działa jak lodówka; nie modyfikuje prototypów. –

+0

Dzięki, przepraszam, tak, właśnie tak. – MindVox