首页 > 解决方案 > 如何按键合并两个对象数组

问题描述

我有两个 json 文件。一个包含州名、缩写和 ID(“Estados.json”)。另一个我有多个带有 ID、城市名称和相应州代码(“Cidades.json”)的对象。我想要做的是合并两个基于数组的数组,为每个州获取一个新密钥下的所有相应城市。

预期的输出是这样的:

[{
"ID": "1",
"Sigla": "AC",
"Nome": "Acre"
"Cidades": 
    {
    "ID": 79, 
    "Nome": "Acrelândia", 
    "Estado": "1"}, 
    {
     "ID": "80", 
     "Nome": "Assis Brasil", 
     "Estado": "1"}, 

      ..., 

      {all the objects that have the same "Estado" key value 1}

      }]

链接到两个 json 文件:https ://github.com/felipefdl/cidades-estados-brasil-json

标签: javascriptarraysnode.jskey

解决方案


const j1 = `https://raw.githubusercontent.com/felipefdl/cidades-estados-brasil-json/master/Estados.json`;
const j2 = `https://raw.githubusercontent.com/felipefdl/cidades-estados-brasil-json/master/Cidades.json`;

(async () => {
  const Estados = await ((await fetch(j1)).json());
  const Cidades = await ((await fetch(j2)).json());
  
  Estados.forEach(e => {
    e.Cidades = Cidades.filter(c => e.ID === c.Estado);
  });

  console.log(Estados[0]);
  
  // Estados now contains Cidades
})();


推荐阅读