我有一个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()
(第二个未经测试,可能是错误的,但已经很接近了。)
正如评论中提到的,根据您的数据实际是什么,您可以一次完成这一切,而无需先取出
usernames
是什么。
您还可以使用
uniqBy
函数,它也接受为数组中的每个元素调用的迭代器。它接受如下两个参数,其中 id 是 iteratee 参数。
_.uniqBy(array, 'id')
非常简单的解决方案:
_.uniq(array.map(({ status }) => status))