javascript - 使用 loadash 通过两个键获取对象组数组
问题描述
输入:
[
{
"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 但不知道如何映射多个键请告诉我如何完成
解决方案
构建一个具有聚合计数的对象。(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));
推荐阅读
- apache - 301 重定向,在 url 中使用 %0A
- r - r - 来自 crosswalkr 的 renamefrom 函数返回 0 列
- javascript - Bootstrap 4 通过 JavaScript 切换按钮上的图标
- python-3.x - 无法使用 Selenium 和 Python3 在表单中找到元素
- c# - 无法使用 moq 对 API 控制器进行单元测试。我哪里错了?
- angular - 如何在 Angular 中按 2 引用表单元素?
- html - 在 HTML 中播放实时流媒体 .wav 文件
- rust - 将属性应用于宏扩展
- javascript - 试图让 Cypress、TypeScript 和 IstanbulJS 一起工作
- c++ - `向量之间的区别
v;`和`向量 v = 向量 ();`