使用下划线计数-选择计数以避免重复

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

可能是最简单的,但仍然如此。从下面的数据中,我实际上想实现_.countBy来获得响应,因为城市A中有1个,城市B中有1个。这里要注意的是,第一条记录和第二条记录实际上是指同一个人。因此,从逻辑上讲,有一个人来自城市A。但是就现有记录而言,countBy导致城市A中有2个人,城市B中有1个人。您能帮忙解决这个问题吗?

 var data=[{
      id:1,
      name:"xxx",
      city:"City A",
      skill:"Angular"
    },
    {
      id:2,
      name:"xxx",
      city:"City A",
      skill:"Node"
    },{
      id:3,
      name:"yyy",
      city:"City B",
      skill:"Angular"
    }];
underscore.js
1个回答
0
投票
您需要先确保每个用户都是唯一的(将_.uniq传递给_.uniq之前,请先使用它)。

_.countBy

您可以使用_.countBy将两者合并为一行。

const unique = _.uniq(data, p => p.city + "|" + p.name) const byCity = _.countBy(unique, p => p.city)

均返回以下结果:

_.chain
© www.soinside.com 2019 - 2024. All rights reserved.