javascript - 如果对象数组中的id匹配,如何插入名称值
问题描述
如果对象数组中的 id 匹配,如何插入名称值
var array = [{
"id": 1,
"name": "rohan1",
"managerName": 'Charlic Martin'
},
{
"id": 1,
"name": "rohan2",
"managerName": 'Charlic Martin'
},
{
"id":2,
"name": "rohan3",
"managerName": 'Charlic Martin'
},
{
"id":3,
"name": "rohan3",
"managerName": 'Charlic Martin'
}]
这是一个对象数组。
我需要以下输出:
[{
"id":1,
"name": "rohan1,rohan2",
"managerName": 'Charlic Martin'
},{
"id":2,
"name": "rohan3",
"managerName": 'Charlic Martin'
},
{
"id":3,
"name": "rohan3",
"managerName": 'Charlic Martin'
}]
解决方案
您可以使用每个对象的 id 来创建地图。如果再次找到具有相同 id 的对象,它将只是连接两个对象的名称
function groupObjects(arr) {
const unique = {};
arr.forEach(item => {
const {id, name} = item;
unique[id] ? unique[id]['name'] += `,${name}` : unique[id] = item;
});
return Object.values(unique);
}
推荐阅读
- visual-studio - 由于 PowerShell 受限语言,我的 ps1 文件无法正常工作。我可以用 Visual Studio 解决方案替换它吗?
- javascript - 每个节点调用是否运行自己的节点版本
- python - 检查值在元组列表中的位置
- mysql - 使用 group by 在两个查询之间进行减法
- python - Python矩阵标记
- javascript - Javascript Array[i] 作为循环中的条件
- docker - 通过 Jenkins API 请求从从站触发 Jenkins 作业
- java - Android - RecyclerView 项目未显示
- java - 这个 Java 泛型运算符“x.
函数(...)”被调用,它有什么作用? - assembly - gdb 中汇编注释中列出的地址的含义