ES6学习---map数据结构

34 篇文章 1 订阅

在传统JS操作对象是,通常只能用字符串来作为对象的键,在一定程度上是有限制的,在新的标准中,使用map数据结构可以放宽对象键的类型,理论上对象的键可以是任何类型,下面详细说明下map数据结构 。

1.map的申明

const map = new Map();
//或
const map = new Map([
	['name', 'smith'],
	['age', 20]
]);

以上可以新申明一个map的实例,可以接受数组作为参数,其中数组内的每一个数组表示Map实例的键和值

2.map的实例属性及方法

set方法

let obj = {a: 1};
let dis = new Map();
map.set('test', 1);		//键是字符串
map.set(obj, 1);		//键是对象
map.set(dis, 1);		//键是Map实例

理论上Map实例的键值可以是任何类型

get方法

map.get('test');
map.get(obj);
map.get(dis);

这里注意不能用map.get({a: 1}),此时取不到值的,因为此时的{a:1}与obj是不同的引用,对象作为键必须是相同的引用才能得到正确的值

size属性

map.size;	// 3('test',obj,dis)

获得当前实例的长度

has方法

map.has('test');	// true
map.has({a: 1});	// false
map.has(dis);		// true

以上也可看出,涉及到不同存储地址的对象不是相同的引用

delete方法

map.delete('test');
map.has('test');	// false

删除指定键的部分

clear方法

map.size;	// 2(obj, dis)
map.clear();
map.size;	// 0

清空当前实例

3.map遍历方法

Map 结构原生提供三个遍历器生成函数和一个遍历方法

keys()		//返回键名的遍历器。
values()	//返回键值的遍历器。
entries()	//返回所有成员的遍历器。
forEach()	//遍历 Map 的所有成员。

具体使用如下所示

for(let key of map.keys()) {
	console.log(key);
}
//'size'
//{a: 1}
//Map(0) {}

for(let val of map.values()) {
	console.log(key);
}
//1
//1
//1

for(let [key, val] of map.entries()) {
	console.log(key,val);
}
//'size' 1
//{a: 1} 1
//Map(0) {} 1

for(let [key, val] of map) {
	console.log(key,val);
}
//'size' 1
//{a: 1} 1
//Map(0) {} 1

由上面例子可以看出map.entries()等价于map默认的遍历器接口

map[Symbol.iterator] === map.entries;// true

此外map还有类似数组的forEach遍历方法,使用方法与数组的使用方法相同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值