11-Iterable迭代器

1. Iterable
1. 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。
2. 为了统一集合类型,ES6标准引入了新的iterable类型
    Array、Map和Set都属于Iterable类型。

3. 具有iterable类型的集合可以通过新的for ... of循环来遍历
2. 检测浏览器是否支持Iterable
<script>
    'use strict';
    var nums = [1, 2, 3, 4];
    for (var i of nums) {
        // for...of不会报错,说明支持
    }
    console.log('浏览器支持for...of');
</script>
3. for…of的使用
  1. 遍历数组对象
<script>
    var nums = [1, 2, 3, 4];
    for (var num of nums) {
        console.log(num);
    }
</script>
  1. 遍历Map对象
<script>
    var m = new Map([['rulai', 95], ['fozu', 75], ['fofo', 85]]);
    for (var tmp of m) {
        console.log(tmp[0] + '=' + tmp[1]);
    }
</script>
  1. 遍历Set对象
<script>
    var s = new Set(['a', 'b', 'c']);
    for (var tmp of s) {
        console.log(tmp);
    }
</script>
4. for…in 和 for…of的区别
for...in 
    遍历的是对象的属性,如果给这个对象添加属性,也会把这个属性变量出来
    但数组length()并没有把新增属性包括在内
for...of
    只会循环遍历集合本身的元素
5. forEach()循环遍历
5.1 检测浏览器是否支持forEach()方法
forEach()方法是ES5.1标准引入的,你需要测试浏览器是否支持
5.2 forEach()使用
  1. 遍历数组对象
<script>
    'use strict';
    var nums = [1, 2, 3];
    nums.forEach(function(element, index, array){
        // element:指向当前元素的值
        // index:指向当前索引
        // array:指向Array对象本身
        console.log(element + ', index = ' + index);
    });
</script>
  1. 遍历Map对象
<script>
    var m = new Map([['rulai', 95], ['fozu', 75], ['fofo', 85]]);
    m.forEach(function(value, key, map){
        console.log(value);
    });
</script>
  1. 变量Set对象
<script>
    var s = new Set(['a', 'b', 'c']);
    s.forEach(function(element, sameElement, set){
        console.log(element);
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员buddha2080

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值