Es6中的map的key怎么获取以及怎么转为一个数组

我们都知道

  1. 正常对象的key 的类型就是字符串 只能写普通类型 类似string 布尔值 null undefined number 不能是引用类型类似 object 数组 
  2. Map对象的健可以是任意类型

那我们怎么才能获取到map的key呢?

我这里列举两种方法

首先 先创建一个map集合

 const showDemo =new Map([['a',100],['b',8],['c',1]])
 const obj={ d:1}
 showDemo.set(obj,111) //向showDemo里插入一个key为{d : 1} 的值
  •    原生方法        

我们直接用原生方法 showDemo.keys()就可以获取到

用原生方法获取到key的集合是个对象 

获取key为{ d: 1 }的方法 

for (const key of showDemo.keys()) {
  if (key === obj) {
    console.log(key);
  }
}

 在上面的代码中,我们使用for...of循环遍历showDemo.keys()返回的键。然后,我们将每个键与{ d: 1 }进行比较,如果相等,则打印出该键。

我们也可以直接通过 

Array.from(showDemo.keys())   

[...showDemo.keys()]

我们可以通过这两种方式 转成数组 这样也可以轻松拿到

  • 循环遍历
 showDemo.forEach(function(e,key){
     console.log(e,key)
 })

在这种方法中 获取key为{ d: 1 }的方法 

const list = [] as any
showDemo.forEach(function (item, key, object) {
   list.push(key)
 })
        

这样也可以拿到 

以上我们可以得出:

showDemo.keys() 返回并不是一个数组 而是一个对象 

想取值的话 最好还是先转成数组

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值