如何在JavaScript中组合具有相同键名的两个对象?

如何在JavaScript中组合具有相同键名的两个对象?,javascript,array-merge,Javascript,Array Merge,在我的react应用程序中,我目前有两个数组,其中包含我想要组合的对象 常数车=[ {'car':'porsche','description':'luxury','driverId':4}, {'car':'ferari','description':'beatiful','driverId':2}, {'car':'bmw','description':'slow','driverId':5} ] 常量驱动程序=[ {'driver':{'car':'kia','name':'John','

在我的react应用程序中,我目前有两个数组,其中包含我想要组合的对象

常数车=[ {'car':'porsche','description':'luxury','driverId':4}, {'car':'ferari','description':'beatiful','driverId':2}, {'car':'bmw','description':'slow','driverId':5} ] 常量驱动程序=[ {'driver':{'car':'kia','name':'John','description':'超重'}, {'driver':{'car':'toyota','name':'Koko','description':'丑陋'}, {'driver':{'car':'nissan','name':'Goku','description':'Tall'}} ] 在组合两个对象之后,我希望最终结果是这样的

常数carInfo=[ {'car':'porsche','description':'luxury','driverId':4,'carName':'kia','name':'John','descriptionDriver':'超重', {'car':'ferari','description':'beatiful','driverId':2,'carName':'toyota','name':'Koko','descriptionDriver':'丑陋', {'car':'bmw','description':'slow','driverId':5,'carName':'nissan','name':'Goku','descriptionDriver':'Tall'} ]
基本上,我想更改drivers对象中的键名,然后合并它们。因为当对象之间有相同的键名时,“扩展”操作符将不起作用。我怎样才能得到这个结果呢?

当然你可以使用spread操作符,只需在上面映射并重命名一些道具:

drivers.map(x => x.driver).map((x, i) => {
  let { car, description, ...rest } = x
  return { ...rest, carName: car, descriptionDriver: description, ...cars[i] }
})

是否始终保证两个阵列的长度相同?如果没有,会发生什么?为什么不在键驱动下插入每个驱动程序对象?那么你就不必担心对象密钥冲突了。谢谢你,这一切都很顺利!