2016-05-17 5 views
6

私はlodash変数を持っています。Lodashマップとユニークな返信

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

これは、以下を生成する。

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

lodash文を調整して一意の値の配列のみを返すことができますか?例えば

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

あなたは 'uniqBy'を試しましたか? '_.uniqBy(data、 'username')' –

+0

私はデータでそれを可能にしたいと思っています...しかし、この機会には、私はできません。 – MindVox

答えて

24

多くの方法がありますが、uniq()は配列のメソッドではありません。それはロダッシュメソッドです。

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

または:

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

(。第二は、テストされていないと、おそらく間違っているが、それは近いです)

で実際にどのようなデータに応じて、コメントで述べたように、 usernamesが何であれ最初に取り出すことなくワンショットでこれを行うことができます。

+0

ありがとう、私は何かロダシ特有のことを言いましたが。私はuniq()がlodashであることを知っています。 – MindVox

+0

@ KarlBateman \t右ですが、配列上でlodashメソッドを呼び出そうとしています。それはロダッシュの仕組みではありません。プロトタイプは変更されません。 –

+0

ありがとう、申し訳ありませんええ、そうです。 – MindVox

関連する問題