使用loadash通过两个键获取对象组的数组

问题描述

输入:

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

输出:

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

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

解决方法

构建一个具有聚合计数的对象。 (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",{
    Country: "","New Lv1-Lv2": "test",];

console.log(convert(data));

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...