Lodash 地图并返回唯一的

问题描述 投票:0回答:3

我有一个lodash变量;

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

产生以下结果;

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

如何调整 lodash 语句,使其仅返回唯一值的数组?例如

var username = _.map(data, 'usernames').uniq();
javascript node.js lodash
3个回答
87
投票

很多方法,但

uniq()
不是数组上的方法,而是lodash方法。

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

或者:

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

(第二个未经测试,可能是错误的,但已经很接近了。)

正如评论中提到的,根据您的数据实际是什么,您可以一次完成这一切,而无需先取出

usernames
是什么。


19
投票

您还可以使用

uniqBy
函数,它也接受为数组中的每个元素调用的迭代器。它接受如下两个参数,其中 id 是 iteratee 参数。

_.uniqBy(array, 'id')

0
投票

非常简单的解决方案:

_.uniq(array.map(({ status }) => status))
© www.soinside.com 2019 - 2024. All rights reserved.