node.js - 在节点中按 JSon 分组以获得唯一 ID
问题描述
在我的 nodeJs 代码中,我从数据库中获取一些记录。我以 JSON 格式获取数据,如下所示:
[[{
sourcePguid: '000526420800003',
recordPguid: 'urn:reference:000000000000000000000000011225'
},
{
sourcePguid: '000526420800003',
recordPguid: 'urn:reference:000000000000000000000000011225'
}]
]
我想要的是类似于以下 JSON 的东西:
{
sourcePguid: '000526420800003',
recordPguid:['urn:reference:000000000000000000000000011225','urn:reference:000000000000000000000000011225']
}
我是 Java 脚本和节点的新手。如果有人帮助我在节点 JS 中实现输出,请多多关照。
解决方案
首先,您需要平整整个阵列
const array = [[{
sourcePguid: '000526420800003',
recordPguid: 'urn:reference:000000000000000000000000011225'
},
{
sourcePguid: '000526420800003',
recordPguid: 'urn:reference:000000000000000000000000011225'
}]
].flat();
接下来你需要通过一些键来减少数组分组
const grouped = array.reduce((all, current) => {
const existing = all.find(element => element.sourcePguid === current.sourcePguid);
if (!existing) {
all.push({sourcePguid: current.sourcePguid, recordPguid: [current.recordPguid]});
} else if (!existing.recordPguid.find(record => record === current.recordPguid)) {
existing.recordPguid.push(current.recordPguid);
}
return all;
}, []);
推荐阅读
- r - 使用 ggplot 将点绘制为带标签的线
- android - Android Button.setError() 不显示带有错误文本的覆盖
- c++ - 如何构造一个 std::variant 类型对象,其自身模板化和构造函数转发参数
- css - 条纹结帐按钮样式
- python-3.x - 将图像数据集拆分为训练测试数据集
- vb.net - Renci.SshNet由于错误无法连接
- data-structures - 是否有除堆栈以外的数据结构用于字符串反转?
- xamarin.forms - 如何自动播放 xamarin 表单中的图像列表
- python - 为什么我的变量在使用 pop() 方法时没有更新?
- javascript - 反应箭头功能组件 - 未定义 setState