javascript - 连接多个具有相同名称和索引的对象

列表动物.json

[
0:
{
base: {address: 'address house 1', animal: 'DOG', name: 'boby'}
},
1:
{
base: {address: 'address house 2', animal: 'CAT', name: 'pippo'}
},

2:
{base: {address: 'address house 3', animal: 'TIGER', name: 'best'}
},
3:
{base: {address: 'address house 4', animal: 'HORSE', name: 'lino'}
},
]

其他信息.json

[{
    "boby":
     { "id":1,
    "img":"link img dog",
    "forum":" link forum dog"
},

"pippo": 
     { "id":2,

    "img":"link img cat",
    "forum":" link forum cat"
},
"best":  
    { "id":3,
    "img":" link img tiger",
    "forum":" link forum tiger"
}, ]

大家早上好,我有这两个无法连接的 json 文件,我想让我解释一下,最终的结果应该是,你必须加入具有相同名称和索引的人

[
0:
{
base: {address: 'address house 1', animal: 'DOG', name: 'boby'}
"id":1,
"img":"link img dog",
"forum":" link forum dog"
},
etc

我尝试了几种方法“Object.assign()”,“Object.concat()我将对象添加到数组中,但作为新索引

回答1

你可以这样做

const info = [
  {
    "boby":
    {
      "id": 1,
      "img": "link img dog",
      "forum": " link forum dog"
    }
  },

  {
    "pippo":
    {
      "id": 2,

      "img": "link img cat",
      "forum": " link forum cat"
    }
  },
  {
    "best":
    {
      "id": 3,
      "img": " link img tiger",
      "forum": " link forum tiger"
    }
  },
]

const infoObj = Object.assign({}, ...info)

const animals = [

  {
    base: {
      address: 'address house 1',
      animal: 'DOG',
      name: 'boby'
    }
  },

  {
    base: {
      address: 'address house 2',
      animal: 'CAT',
      name: 'pippo'
    }
  },


  {
    base: {
      address: 'address house 3',
      animal: 'TIGER',
      name: 'best'
    }
  },

  {
    base: {
      address: 'address house 4',
      animal: 'HORSE',
      name: 'lino'
    }
  },
]

const result = animals.map(a => ({
 ...a,
 ...(infoObj[a.base.name] || {})
}))

console.log(result)

相似文章

随机推荐

最新文章