map集合

JavaScript的对象( object ),本质是上键值对的集合,但是传统上只能用字符串当做键值对。
为了解决这个问题,ES6提供了map数据结构。它的私语对象,也是键值对的集合。但是这个键的范围不限于字符串,各种类型的值(包括对象)都可以当做键。也就是说object结构提供了(字符串-值)的对应.
ES6中的map类型时一种储存着许多键值对的有序列表,其中的键名和对应的值支持所有数据类型。数字5与字符串‘5’会被判定为两种类型,可以分别作为两种独立的键出现在程序中。
1 、属性: size
返回map的元素数
 
2 、基本方法
1 set()
给map添加数据,返回添加后的map(给已存在的键赋值后会覆盖掉之前的值)
2 get()
获取某个key的值,返回key对应的值,没有则返回undefined
3 has()
检测是否存在某个key,返回布尔值有返回true,没有返回false
4 delete()
删除某个key及其对应的value,返回布尔值,成功删除则为true
5 clear()
清除所有的值,返回undefined
3 、遍历方式
注意: map 的遍历顺序就是插入顺序,都是有 MapIterator (Map迭代器)
 let map = new Map();
map.set('JacksonWang','123');
map.set('LEO','456');
map.set('Z-','789');
1 keys()
获取map的所有key
 console.log(map.keys())//打印所有的键
/*输出:
[Map Iterator] { 'JacksonWang', 'LEO', 'Z-' }
2 values()
获取map的所有值
 console.log(map.values())//打印所有的值
/* 输出:
[Map Iterator] { '123', '456', '789' }
(3 ) entries()
获取map的所有成员
console.log(map.entries())//以键值对的方式
/*输出:
 [Map Entries] {
  [ 'JacksonWang', '123' ],
  [ 'LEO', '456' ],
  [ 'Z-', '789' ]
}
(4) for  of 用来循环Map迭代器 
不可以遍历对象,会提示对象不是一个迭代器,遍历对象只能使用for in
 for  of可以遍历数组,里面的变量的值是数组的每一项
(4) forEach()
遍历map的所有成员
let map = new Map();
map.set('JacksonWang','123');
map.set('LEO','456');
map.set('Z-','789');

for(const [key,value] of map.entries()){
    console.log(`${key}:${value}`);
}
/*输出:
JacksonWang:123
LEO:456
Z-:789
*/
科普小知识:不管对象还是数组亦或者Set数据构造函数都有keys()/values()/entries()方法
转为数组练习题:
map结构转为数组解构
let map1 = new Map([
    [1,'One'],
    [2,'Two'],
    [3,'Three']
])

console.log([...map1.keys()]);
console.log(...map1.entries())
console.log([...map1.entries()]);
/*输出:
[ 1, 2, 3 ]
[ 1, 'One' ] [ 2, 'Two' ] [ 3, 'Three' ]
[ [ 1, 'One' ], [ 2, 'Two' ], [ 3, 'Three' ] ]
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值