继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

ECMAScript6.0新特性介绍第六篇

王家大少
关注TA
已关注
手记 18
粉丝 25
获赞 75

在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
}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP