关于ES6 MAP数据结构的使用记录 以及合并数组内有相同对象值的方法

74 阅读1分钟

读取的数据转MAP

读取的数据的是[{},{},{}]的形式时可使用

let map = new Map()
let list = [{},{},{}]
list.forEach((item,index) => {
              map.set(index, item)
            })
     console.log("test测试",map); //    打印如下图一
     console.log("测试get",map.get(2));//为list第3个对象

image.png

数组内的对象存在相同值的进行合并

//声明一个新的map对象
let recordMap = new Map()
let list = [{a:1,b:2,c:3},
            {a:1,b:22,c:3},
            {a:2,b:2,c:3},
           ]
 list.forEach(item => {
              if (recordMap.get(item.a)) {
                //比如a是1的已经set一个了 则给这一项插入第二个
                let list = recordMap.get(item.a)
                list.push(item)
                //更新a是1的项
                recordMap.set(item.a, list)
              } else {
                //没有则第一次设置这个项
                recordMap.set(item.a, [item])
              }
            })  
            //得到的就是一个 [
            //                 [{a:1,b:2,c:3},{a:1,b:22,c:3}],
           //                  [{a:2,b:2,c:3}]
           //                  ]
           //                  的map对象
            this.xxx = recordMap
            //如果要调用xxx这个数据则     
            //this.superviseMap.get(x) 拿到的就是常规的数组结构了