javascript - 通过对象的键对数据集进行分组并生成数组
问题描述
我有一组数据,我按对象的键分组 - 对于对象的每个键,我需要生成一个 id 的数组。因此,它不是一个对象数组,而是一个 id 的平面数组。
我已经设法取回数据,但似乎无法只取出 id。
这是数据集
let result = {
"age_group_ids": [
{
"id": 5
},
{
"id": 4
},
{
"id": 3
},
{
"id": 9
}
],
"family_group_ids": [
{
"id": 2
},
{
"id": 1
}
],
"earnings_group_ids": [
{
"id": 7
},
{
"id": 6
}
]
}
这是我写的函数,但它似乎不起作用。
Object.keys(result).forEach(key => {
return result[key].map(item => {
item.id
})
})
最终结果我想要这样的对象
{"age_group_ids": [5,4, 3, 9],
"family_group_ids": [2, 1],
"earnings_group_ids": [7,6]
解决方案
不是从 中返回,而是forEach
将结果分配回result[key]
。删除了地图周围的大括号item.id
,因此值将添加到数组中。
const result = {"age_group_ids":[{"id":5},{"id":4},{"id":3},{"id":9}],"family_group_ids":[{"id":2},{"id":1}],"earnings_group_ids":[{"id":7},{"id":6}]};
Object.keys(result).forEach(key => {
result[key] = result[key].map(item => item.id)
})
console.log(result);
推荐阅读
- python-3.x - 标记来自两个不同数据框列的数据点
- git - Maven 和 Docker 在 Kubernetes/OpenShift 上构建、发布和部署
- typescript - 如何从多个请求中累积数据
- c# - 字典
到字典 - database - Laravel 会话中的数据库连接
- angular - 如何在角度 7 中的 Select 中填充远程 JSON 值?
- php - 网站数据库不会自动更新
- javascript - Web 组件的事件“已加载所有内容并绘制到屏幕上”
- r - 如何防止将图像添加到 ShinyDashboard 标题的代码出现在浏览器选项卡中?
- android - 获取资产文件夹中存在的 pdf 缩略图会导致文件未找到异常