JavaScript之iterable&&for...in、for...of和forEach

参考自廖雪峰老师官方网站的JavaScript教程
以下是对iterable部分的简单总结

iterable
Array Map和Set都属于iterable类型

具有iterable类型的集合可以通过for…of循环来遍历

        var a = ['a','b','c'];
        for( var x of a ){
            console.log(x); //a b c
        }

for…of与for…in的不同
for…in遍历的实际上是对象的属性名称
一个数组实际上也是一个对象,每个元素的索引可以被视为一个属性

		for( var x in a ){
            console.log(x); //0 1 2
        }

更好的方式是直接使用iterable内置的forEach方法
它接收一个函数,没次迭代自动回调该函数。

        a.forEach(
            function(element,index,array){
                //element 指向当前元素的值
                //index 指向当前元素的索引
                //array 指向array对象本身
                console.log(element,index);
                // a 0  
                // b 1
                // c 2
            }
        )

Set没有索引,所以Set回调函数的前两个参数都是元素本身

		var s = new Set(['a','b','c']);
        s.forEach(
            function(element,sameElement,set){
                console.log(element);//a b  c
                console.log(sameElement);//a b c
                console.log(set);//Set Set Set
            }
        )

Map的回调函数参数依次为value key map

        var m = new Map([[1,'x'],[2,'y'],[3,'z']]);
        m.forEach(function(value,key,map){
            console.log(value);//x y z
            console.log(key);//1 2 3
            console.log(map)//Map Map Map
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值