Lodash変数があります。
var usernames = _.map(data, 'usernames');
以下を生成します。
[
"joebloggs",
"joebloggs",
"simongarfunkel",
"chrispine",
"billgates",
"billgates"
]
一意の値の配列のみを返すようにlodashステートメントを調整するにはどうすればよいですか?例えば.
var username = _.map(data, 'usernames').uniq();
多くの方法がありますが、uniq()
は配列のメソッドではなく、lodashのメソッドです。
_.uniq(_.map(data, 'usernames'))
または:
_.chain(data).map('usernames').uniq().value()
(2番目はテストされておらず、おそらく間違っていますが、近いです。)
コメントで述べたように、実際のデータisに応じて、最初にusernames
を抜き出さずにこれをすべて一度に行うことができます。
uniqBy
関数を使用することもできます。この関数は、配列内の各要素に対して呼び出されるiterateeも受け入れます。以下の2つの引数を受け入れます。idはiterateeパラメーターです。
_.uniqBy(array, 'id')