javascript - 合并两个 json 数组

标签 javascript json typescript

我必须数组,我想通过相同的 id 将它们合并到一个数组中。所以每两个具有相同 id 的数组应该合并

案例1:

 { 
    "id":1212,
    "instructor":"william",
     ...
 }

案例2:

[ 
     {
        "id":1212,
        "name":"accounting",
         ...
     },
     { 
        "id":1212,
        "name":"finance",
        ...
     }
]

我需要的结果是:

{        
    "id": 1212,
    "instructor": "william",
    "Courses": [
         { 
            "id":1212,
            "name":"accounting",
             ...
         },
         { 
            "id":1212,
            "name":"finance",
             ...
         }
     ]
}

最佳答案

您要求的不是合并,但这是您可以做到这一点的方法。

const instructors = [{ "id":1212, "instructor":"william", }];
const courses = [ 
  { "id":1212, "name":"accounting" },
  { "id":1212, "name":"finance" }
];

const expected = [{ "id":1212, "instructor":"william", "courses": [
  { "id":1212, "name":"accounting" },
  { "id":1212, "name":"finance" }
]}];

const composed = instructors.map(ins => {
  const ret = {...ins};
  ret.courses = courses.filter(cou => cou.id === ins.id);
  return ret;
});

console.log(composed);

关于javascript - 合并两个 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51673093/

相关文章:

javascript - 交错图像和复选框的问题

javascript - 如何使用ZingChart绘制6组维恩图?

android - json解析使用gson获取位置

javascript - 将带有图像路径值的 Json 文档插入到 css 背景属性中

javascript - 从 Redux 更改为 Redux 工具包

reactjs - 在 Typescript 中,如果设置了另一个可选属性,如何使属性成为必需?

javascript - jQuery 日期选择器首先选择年份,然后选择月份

json - Flutter:如何下载Json文件到本地然后访问

javascript - Angular 2如何将对象数组放入另一个对象数组

javascript - 是否有任何设置阻止 JavaScript 在系统上运行?