map集合

键值对(key value pair)数据集合的特点:键不可重复

map集合专门用于存储多个键值对数据。

在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。

1. 创建map

new Map(); //创建一个空的map
new Map(iterable); //创建一个具有初始内容的map,初始内容来自于可迭代对象每一次迭代的结果,但是,它要求每一次迭代的结果必须是一个长度为2的数组,数组第一项表示键,数组的第二项表示值
const mp = new Map([
   [1, 2],
   [3, 4],
   [5, 6],
   [1, 2]
]);
console.log(mp)
​
输出:
Map(3) {1 => 2, 3 => 4, 5 => 6}

2. 属性和方法

  • size:只读属性,获取当前map中键的数量

  • set(键, 值):设置一个键值对,键和值可以是任何类型

    • 如果键不存在,则添加一项

    • 如果键已存在,则修改它的值

    • 比较键的方式和set相同

  • get(键): 根据一个键得到对应的值

  • has(键):判断某个键是否存在

  • delete(键):删除指定的键

  • clear(): 清空map

3. 和数组互相转换

const mp = new Map([
    [1, 2],
    [3, 4],
    [5, 6],
    [1, 2]
]);
const arr = [...mp];
console.log(arr)
​
输出:
(3) [Array(2), Array(2), Array(2)]
0: (2) [1, 2]
1: (2) [3, 4]
2: (2) [5, 6]

4. 遍历

  • for-of,每次迭代得到的是一个长度为2的数组

  • forEach,通过回调函数遍历

    • 参数1:每一项的值

    • 参数2:每一项的键

    • 参数3:map本身

const mp = new Map([
    [1, 2],
    [3, 4],
    [5, 6],
    [1, 2]
]);
mp.forEach((value, index, array) => {
    console.log(value, index, array)
})
​
输出:
2 1 Map(3) {1 => 2, 3 => 4, 5 => 6}
4 3 Map(3) {1 => 2, 3 => 4, 5 => 6}
6 5 Map(3) {1 => 2, 3 => 4, 5 => 6}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值