Lodash地图和返回唯一

时间:2016-05-17 12:52:16

标签: javascript node.js lodash

我有一个lodash变量;

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

产生以下内容;

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

如何调整lodash语句以便它只返回一组唯一值? e.g。

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

2 个答案:

答案 0 :(得分:42)

很多方面,但是uniq()不是数组上的方法,它是一种lodash方法。

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

或者:

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

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

正如评论中所提到的,根据您实际 的数据,您可以一次性完成所有操作,而无需先取出usernames

答案 1 :(得分:0)

您还可以使用uniqBy函数,该函数还接受为数组中的每个元素调用的iteratee。它接受如下两个参数,其中 id 是iteratee参数。

_.uniqBy(array, 'id')