我有两个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
答案 0 :(得分:2)
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
})();
答案 1 :(得分:0)
这是我们使用map方法和Object.assign方法通过使用id合并对象数组的方法。
function mergeArrayObjects(arr1,arr2){
return arr1.map((item,i)=>{
if(item.id === arr2[i].id){
//merging two objects
return Object.assign({},item,arr2[i])
}
})
}