ES6中map的set方法能否判断键是否存在然后区别处理呢?

苍山暮色烟雨迟
  • 220

需求是在向map中添加键值的时候,如何先判断键已经存在,然后进行不同的处理呢?

let msg = new Map()
msg.set('a',{count: 10})
msg.set('a',{count: 20})

我想实现的是 a如果存在 那么count相加,a不存在的话,直接添加对应键值对就行了

这个应该如何去实现呢?

回复
阅读 1.9k
2 个回答
followWinter
  • 1.5k
✓ 已被采纳

打开控制台甩起键盘就是一个new Map()
clipboard.png
有这么多方法诶,都啥意思啊,挽起袖子就是一个MDN,这不都有了:

clipboard.png

?:

let msg = new Map()
msg.set('a',{count: 10})
if(msg.has('a')){
    let data=msg.get('a')
    data.count+=10
    msg.set('a',data)
}else{
        msg.set('a',{count:10})

}
墨白
  • 80

借用楼上的方法,

let msg = new Map()
msg.set('a',{count: 10});
if(msg.has('a')) {
    var val = msg.get('a').count;
    val += val;
    msg.set('a',{count: val} )
}else {
    mgs.set('a', {count: 10})
}
宣传栏