ES6 新增的Map数据结构

ES6 新增的Map数据结构

虽然网上很多讲解  还是打算自己整理一下来加深印象

Map可以接受数组作为参数,数组成员还是一个数组,其中有两个元素,一个表示键一个表示值。

const map2 = new Map([
  ['name', 'Aissen'],
  ['age', 12]
])

map2  //   {"name" =>Aissen, "age" => 12}

map2.size //  2

map2.set('sex','man') 

如果一个键重复设置 后面的会覆盖之前的值

map2.get('sex') //  man

可以链式调用

map2.set().set().set().get()

Map对象将 0 -0 +0视为同一个值

map2.set(-0,'0相等');
map2.get(0); // 0相等
map2.get(+0); // 0相等

Map视NaN相等

map2.set(NaN,'相等');
map2.get(Number('xixixi')) // '相等

布尔值true和'true'是两个不同的键,undefined和null也是两个不同的键

map2.has(key);

返回值:布尔值,若存在于Map中,则返回true

移除 Map 对象中指定的元素。
map2.delete(key);

返回值:布尔值,若为true,则删除成功

map2.clear()

清除所有成员,没有返回值

返回键名的遍历器
map2.keys()

for(let key of map2.keys()){
    console.log(key)
}

返回键值的遍历器
map2.values()

for(let value of map2.values()){
    console.log(value)
}

返回所有成员的遍历器
map2.entries()

 for(let item of map2.entries()){
    console.log(item)
 }
 // 返回结构如 ['aa',11]

map2.forEach(callback[, thisArg])

thisArg:this,可选

var map = new Map()
    .set('aa',11)
    .set('bb',22)
map.forEach(function (value,key,mymap){
console.log(value,key,mymap)
})
// 11 "aa"  {"aa" => 11, "bb" => 22}
// 22 "bb"  {"aa" => 11, "bb" => 22

map转数组

var map = new Map()
    .set('aa',11)
    .set('bb',22)
    .set('cc',33)
    
    [...map] // [ ['aa',11],['bb',22],['cc',33] ]
    [...map.keys()] //  ["aa", "bb", "cc"]
    [...map.values()] // [11, 22, 33]
    [...map.entries()] //  [ ['aa',11],['bb',22],['cc',33] ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值