JS 循环最全总结 还有比这更全的吗?

do-while 先执行后判断,至少有一次被执行

var num = 10;
            
do{
    document.write(num+"<br />");//10 9 8 7 6 5 4 3 2 1 0
    num--;
    }while(num>=0);
            
document.write(num);//-1

while 先判断后执行

var num = 1;//1、声明循环变量
            
while (num<=10){//2、判断循环条件;
    document.write(num+"<br />");//3、执行循环体操作;
    num++;//4、更新循环变量;
}

for 先判断后执行(声明变量;判断条件;更新变量)

for (var num =1; num<=10; num++) {
    document.write(num+" <br />"); //1 2 3 4 5 6 7 8 9 10 
}

for ..in.. ,for(var i in obj),i 遍历的是键名, obj[i]可以遍历键值

for.. of ..,for(var i of obj),i 遍历的是键值

var arr = ['a', 'b', 'c', 'd'];

        for (let i in arr) {
          console.log(i); // 0 1 2 3
        }
        
        for (let i of arr) {
          console.log(i); // a b c d
        }

for ..of.. 还可以用于遍历map set结构的数组

var engines = new Set(["Gecko", "Trident", "Webkit", "Webkit"]);
        for (var e of engines) {
          console.log(e);
        }
        // Gecko  Trident    Webkit
        
        var es6 = new Map();
        es6.set("edition", 6);
        es6.set("committee", "TC39");
        es6.set("standard", "ECMA-262");
        for (var [name, value] of es6) {
          console.log(name + ": " + value);
        }
        // edition: 6
        // committee: TC39
        // standard: ECMA-262

arr1.forEach(function(v,i,a){ ... }),只能遍历数组,不能遍历对象

var arr1=["a",66,8,24];
arr1.forEach(function(v,i,a){//分别对应:数组元素,元素的索引,数组本身,后两个可根据需要缺省
    alert(v);
});


// ES6写法
var arr1=["a",66,8,24];
arr1.forEach((v,i,a) => {  
     alert(v);  
});

------------------------------------分割线--------------------------------------

 

JQ的 $.each() 循环

// 可以遍历一个变量,如:数组

     var hotel= ['a','b','c'];

     $.each(hotel, function(i) {    

           alert(hotel[i]); // a,b,c

     });


     $.each(hotel, function(i) {    

           alert(i); // 0,1,2

     });



// 也可以遍历界面元素

    // 例如,一个界面中有多个图片,我们想要遍历所有<img>元素取出它们的图片地址,可以像下面这样做

    $("img").each(function(i){ alert(this.src); });



// 当然我们也可以动态给<img>元素指定图片地址

    $("img").each(function(i){
        this.src = "test" + i + ".jpg";
    });



// 如果想要实现在某一条件下退出遍历,可以使用return

    var arr= [1,2,3,4,5];

     $.each(hotel, function(i) {    

           if(arr[i]>2){return;}

     });


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值