js 数组对象根据相同value的key合并两个对象

Posted 郝艳峰Vip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 数组对象根据相同value的key合并两个对象相关的知识,希望对你有一定的参考价值。

前言

js 数组对象的合并,方便自己后续使用与学习,废话少说,这段代码的功能就是根据某个相同的value值合并两个数组对象,比如:根据相同的hotelId来合并


const hotelList = [
    hotelId:'70931',
    price:'350',
    hotelName:'如家',
    address:'西乡地铁站A口',
,
    hotelId:'70932',
    price:'350',
    hotelName:'如家',
    address:'西乡地铁站A口', 
,
    hotelId:'70933',
    price:'350',
    hotelName:'如家',
    address:'西乡地铁站A口',
,
    hotelId:'70934',
    price:'350',
    hotelName:'如家',
    address:'西乡地铁站A口',
];

const hotelList1 = [
    hotelId:'70931',
    price:'458',
    hotelName:'如家'
,
    hotelId:'70932',
    price:'360',
    hotelName:'速8酒店'    
,
    hotelId:'70933',
    price:'850',
    hotelName:'7天'
,
    hotelId:'70934',
    price:'4250',
    hotelName:'格林豪泰'
,
    hotelId:'70935',
    price:'100',
    hotelName:'如意宾馆'
,
    hotelId:'70936',
    price:'1350',
    hotelName:'中天美景大酒店'
];
// 把数组hotelList1合并hotelList
      const newArr = hotelList.map(hotelItem => 
        const data = hotelList1.find(i => hotelItem.hotelId === i.hotelId)
        return 
          ...hotelItem,
          ...data,
        
      )
 // 合并后的结果如下,正好是我想要的结果
console.log(newArr);
// (4) […, …, …, …]
// 0: hotelId: '70931', price: '458', hotelName: '如家', address: '西乡地铁站A口'
// 1: hotelId: '70932', price: '360', hotelName: '速8酒店', address: '西乡地铁站A口'
// 2: hotelId: '70933', price: '850', hotelName: '7天', address: '西乡地铁站A口'
// 3: hotelId: '70934', price: '4250', hotelName: '格林豪泰', address: '西乡地铁站A口'
// length: 4
// [[Prototype]]: Array(0)

以上是关于js 数组对象根据相同value的key合并两个对象的主要内容,如果未能解决你的问题,请参考以下文章

Python 两个字典(dic)中相同key合并(value分别作合成后字典key和value)

js匹配一个对象中key的值进行合并到新的对象

js数组去重,id相同对某值相加合并

将两个数组相同index的value合并成一个新的value组成一个新的数组

js获取json对象中的key和value,并组成新数组

JS两个数组根据相同的ID进行重新组合数据?