gpt4 book ai didi

javascript - 如何使用 Underscore 在 JavaScript 数组中获取重复项

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:36 24 4
gpt4 key购买 nike

我有一个数组,我需要为其重复的项目并根据特定属性打印这些项目。我知道如何使用 underscore.js 获取唯一项,但我需要找到重复项而不是唯一值

var somevalue=[{name:"john",country:"spain"},{name:"jane",country:"spain"},{name:"john",country:"italy"},{name:"marry",country:"spain"}]


var uniqueList = _.uniq(somevalue, function (item) {
return item.name;
})

返回:

[{name:"jane",country:"spain"},{name:"marry",country:"spain"}] 

但我其实需要相反的东西

[{name:"john",country:"spain"},{name:"john",country:"italy"}]

最佳答案

纯粹基于下划线的方法是:

_.chain(somevalue).groupBy('name').filter(function(v){return v.length > 1}).flatten().value()

这将生成一个包含所有重复项的数组,因此每个重复项将在输出数组中出现的次数与它被复制的次数一样多。如果你只想要每个副本的 1 个副本,你可以简单地添加一个 .uniq() 到链中,如下所示:

_.chain(somevalue).groupBy('name').filter(function(v){return v.length > 1}).uniq().value()

不知道它的性能如何,但我确实喜欢我的 one liners...:-)

关于javascript - 如何使用 Underscore 在 JavaScript 数组中获取重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com