Map,Set和iterable

JavaScript的对象键必须是字符串,ES6引入了Map和Set

//检查浏览器是否支持ES6
'use strict';
var m = new Map();
var s = new Set();
console.log('你的浏览器支持Map和Set!');

Map例子

        'use strict';
        var map = new Map([['小明', 95], ['小强', 90], ['小红', 100], [100, '大力']]);
        console.log(map.get('小明'));//95
        console.log(map.get(100));//大力
        map.set('小白', 60);
        console.log("打印map:" + map.get('小白'));//60
        map.set('小黑');
        console.log("打印map:" + map.get('小黑'));//undefined

        map.has('小强');//true
        map.delete('小红');//删除key='小红'

 Set和Map类似,但是只储存key,重复key自动过滤

 

Set常用属性方法:
size属性:返回Set 集合的成员总数。 add(value) 方法:添加某个值,返回 Set 集合本身。
delete(value) 方法:删除某个值,返回一个布尔值,表示删除是否成功。 has(value) 方法:返回一个布尔值,表示该值是否为Set的成员。 clear() 方法:清除所有成员,没有返回值。

----------------------------

ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。具有iterable类型的集合可以通过新的for ... of循环来遍历。

        'use strict';
        var a = ['A', 'B', 'C'];
        var s = new Set(['AA', 'BB', 'CC']);
        var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
        for (var x of a) { // 遍历Array
            console.log(x);//A  B  C
        }
        for (var x of s) { // 遍历Set
            console.log(x);//AA BB CC
        }
        for (var x of m) { // 遍历Map
            console.log(x[0] + '=' + x[1]);//1=x  2=y  3=z
        }
     //forEach是iterable的内置方法
     a.forEach(function(element,index,array){ // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象本身 console.log(element + ', index = ' + index); //结果打印 /* A, index = 0 B, index = 1 C, index = 2 */ });
     

      //循环Set

      s.forEach(function (element, sameElement, set) {
        console.log("elemnet:" + element + " sameElement:" + sameElement);//element和sameElement值相同
      });

    
     //Map的回调函数参数依次为value,key和map本身 

      m.forEach(function (value, key, map) {
        console.log(" key=" + key + " value=" + value);
      });

 
 

 

转载于:https://www.cnblogs.com/yksyuan/p/11155228.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值