为了账号安全,请及时绑定邮箱和手机立即绑定

ECMAScript6.0新特性介绍第六篇

标签:
JavaScript

在ES6中又增加了一些新的数据结构Set和Map。Set结构类似于数组,但是它不能存放相同的值,也就是说Set集合中每个成员都是唯一的。Map也是一种集合,它和Set集合的区别就是Set集合里面存放的值都是单个的,而Map存放的都是键值对形式的。关于Set和Map集合的使用请参考如下代码。

  • Set集合的使用
//set集合中不会出现重复的值
 var s = new Set();   
[2,3,5,4,5,2,2].map(x => s.add(x))
console.log(...s);//输出2,3,5,4
console.log(s.size);//输出s中元素的个数:4
//set 集合中有四个常用的法:add(value),delete(value),has(value)和clear(value)
//add 方法的使用
s.add('nanjing');
s.add('hangzhou');
s.add('beijing');
console.log(...s);//输出 2 3 5 4 'nanjing' 'hangzhou' 'beijing'
//delete方法的使用
s.delete(2);
s.delete(3);
s.delete(4);
s.delete(5);
console.log(...s);//输出nanjing hangzhou beijing
//has方法的使用
let flag=s.has('hangzhou');
console.log(flag);//输出true
flag=s.has('shanghai');
console.log(flag);//输出false
//clear方法的使用
s.clear();
console.log(s);//输出set{} 表明set集合中的值已经被清空
//set 集合的遍历 :Set集合提供了四个方法来遍历Set集合,分别是keys(),values(),entries(),forEach()。具体用法如下:
let names = new Set(['zhangsan', 'lisi', 'wangwu']);
for (let name of names.keys()) {
    console.log(name);//输出:zhangsan,lisi,wangwu
}
console.log("----分割线----------");
for (let name of names.values()) {
    console.log(name);//输出:zhangsan,lisi,wangwu
}
console.log("----分割线----------");
for (let [key,value] of names.entries()) {
    console.log(key+":"+value);//输出:zhangsan:zhangsan,lisi:lisi,wangwu:wangwu
}
console.log("----分割线----------");
names.forEach(item=>console.log(item));//输出:zhangsan,lisi,wangwu
  • Map集合的使用
let student=new Map();
student.set('name','zhangsan');
student.set('name','lisi');
student.set('address',{province:'sichuan',city:'chengdu'});
console.log(student.size);//输出:2
console.log(student.get('address'));//s输出 { province: 'sichuan', city: 'chengdu' }
console.log(student.has('address'));//true
console.log(student.delete('address'));//true
console.log(student.has('address'));//false
student.set('age',20);
student.set('job','software enginer');
for(let key of student.keys()){
    console.log(key);//输出 name,age,job
}
for(let value of student.values()){
    console.log(value);//输出 lisi,20,software enginer
}
for(let [key,value] of student.entries()){
    console.log(key+':'+value);//输出 name:lisi,age:20,job:software enginer
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消