我有一个lodash变量;
var usernames = _.map(data, 'usernames');
产生以下内容;
[
"joebloggs",
"joebloggs",
"simongarfunkel",
"chrispine",
"billgates",
"billgates"
]
如何调整lodash语句以便它只返回一组唯一值? e.g。
var username = _.map(data, 'usernames').uniq();
答案 0 :(得分:42)
很多方面,但是uniq()
不是数组上的方法,它是一种lodash方法。
_.uniq(_.map(data, 'usernames'))
或者:
_.chain(data).map('usernames').uniq().value()
(第二种是未经测试的,可能是错误的,但它很接近。)
正如评论中所提到的,根据您实际 的数据,您可以一次性完成所有操作,而无需先取出usernames
。
答案 1 :(得分:0)
您还可以使用uniqBy
函数,该函数还接受为数组中的每个元素调用的iteratee。它接受如下两个参数,其中 id 是iteratee参数。
_.uniqBy(array, 'id')