数组遍历—for

数组遍历有很多,这里先讲下最常用的for

1. 普通的for

var arr1 =[1,2,3,4,5,6]
    //  for 循环遍历   中途可以用break跳出
    for(var i=0;i<arr1.length;i++){
        if(i>2) break;
        console.log(arr1[i])
    }
//当for循环中存在异步时;
    for (var i = 0; i < arr1.length; i++) {
        setTimeout(function(){
            console.log(i)  //会打印 6次  6
        },100)
    }

2. for... in

//  会获取数组的下标,也可以用break跳出,但是存在异步时也会存在上述问题
    for (let index in arr1) {
        if (index > 2) break
        console.log(arr[index]) 
    }

3. for ... of

//  会获取数组中元素,可以看成普通for循环的简写,也可以用break跳出,但是存在异步时也会存在上述问题 
    for (let item of arr1) {
        if (item > 1) break
        console.log(item)
    }

那么上述的异步问题怎么解决呢 ?

for (var i = 0; i < arr1.length; i++) {
        // 这里是闭包原理 抽时间详细讲讲
        (function (a) { //自执行函数
            setTimeout(function () {
                console.log(a) // 1,2,3....
            },100)
        }(i)) 
    }

总结:for 循环都支持中途跳出,用法比较简单易懂。当然数组还有很多遍历的方法,下篇会接着说

猜你喜欢

转载自www.cnblogs.com/little-oil/p/12132102.html