【问题标题】:Get a array of object group by two keys using loadash使用lodash通过两个键获取对象组数组
【发布时间】:2020-08-12 04:50:26
【问题描述】:

输入:

[
  {
    "Country": "BR",
    "New Lv1-Lv2": "#N/A"
  },
{
    "Country": "BR",
    "New Lv1-Lv2": "#N/A"
  },
  {
    "Country": "",
    "New Lv1-Lv2": "test"
}]

输出:

[
  {
    "Country": "BR",
    "New Lv1-Lv2": "#N/A",
"count":2
  },
  {
    "Country": "",
    "New Lv1-Lv2": "test",
"count":1
}]

我使用了 loadhash group by 但不知道如何映射多个键,请告诉我如何完成

【问题讨论】:

    标签: javascript arrays count logic grouping


    【解决方案1】:

    构建一个具有聚合计数的对象。 (PS.根据您的需要更改密钥是唯一的)

    const convert = (arr) => {
      const res = {};
      arr.forEach((obj) => {
        const key = `${obj.Country}${obj["New Lv1-Lv2"]}`;
        if (!res[key]) {
          res[key] = { ...obj, count: 0 };
        }
        res[key].count += 1;
      });
      return Object.values(res);
    };
    
    const data = [
      {
        Country: "BR",
        "New Lv1-Lv2": "#N/A",
      },
      {
        Country: "BR",
        "New Lv1-Lv2": "#N/A",
      },
      {
        Country: "",
        "New Lv1-Lv2": "test",
      },
    ];
    
    console.log(convert(data));

    【讨论】:

      猜你喜欢
      • 2021-01-26
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      相关资源
      最近更新 更多