js几种遍历的方式

1.for循环

1.for有三个表达式:

  1. 声明环境变量;
  2. 判断循环的条件;
  3. 更新循环变量;

2.for循环执行的特点:

  1. 先判断在执行;
  2. 这三个表达式有多重身份组成,第二个判断条件用&& 或||连接
for(var i = 0 ; i <10 ; i++){
	console.log(i);// 0 1 2 3 4 5 6 7 8 9 10
}

2.while循环

循环特点:先判断后执行;

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

3.do while循环

特点:先执行在判断,即使初始条件不成立,dowhile循环至少执行一次,也就是dowhile比while循环多执行一次。

var num = 10;          
do{
    console.log(num);//10 9 8 7 6 5 4 3 2 1 0
    num--;
    }while(num>=0);
            
   console.log(num);//-1

循环的嵌套:
外层循环控制行,内层循环控制列
可解决多行多列的结构

for(var j = 1; j<9 ;j++){
	for(var i = 0;i < j+1 ; i++){	
		console.log("*");
	}
	console.log("<br>")
}

在这里插入图片描述

4.for in

  1. for…in 循环返回的值都是数据结构的键值名;
  2. 遍历对象时返回的是对象的key值;遍历数组时是返回数组的下标;
  3. for…in 循环不仅可以遍历数字键名,还可以遍历原型上的值和手动添加的值
  4. 特定情况下,for…in 可以遍历任意顺序的键名
let obj = {
	name:"wangyufei",
	age : "18",
	height : "180"
}
for(let i in obj){
	console.log(i,obj[i]);
}

在这里插入图片描述

5.for of

  1. 遍历的是数组中的元素;

  2. 一个数据结果只要部署了Symbol.iterator 属性,就被视为具有iterato接口,就可以使用for of 属性;

  3. 以下数据结构部署了Symbol.iterator 属性,遇上这些属性,都可以使用for of 进行遍历;

    1. 数组Array;
    2. Map;
    3. String;
    4. arguments对象;
    5. Nodelist对象,就是获取的dom列表集合;
  4. 如果要遍历一个对象的键值,就会报错,原因是没有Symbol.iterator属性;

  5. for of 可以与return,break、continue 配合使用,可以随时退出循环;
    在这里插入图片描述
    6.类似数组的对象操作

// 字符串
        var str = "hello";
        
        for (let s of str) {
          console.log(s); // h e l l o
        }
        
        // DOM NodeList对象
        let paras = document.querySelectorAll("p");
        
        for (let p of paras) {
          p.classList.add("test");
        }
        
        // arguments对象
        function printArgs() {
          for (let x of arguments) {
            console.log(x);
          }
        }
        printArgs('a', 'b');// 'a' 'b'

6.循环控制语句

  1. break:跳出本次循环,继续执行循环后面的语句;如果循环有多层,则break只能跳出本次循环,也就是一层;
  2. continue: 跳过本次循环的剩余代码,继续执行下一次循环;
    (1) 对于for循环,continue之后执行的语句,是循环变量更新语句i++;
    (2)对于while,dowhile循环,continue之后执行的语句,是循环条件判断;
    因此,使用这两个循环时,必须将continue放到i++之后使用,否则continue将跳过i++进入死循环;
for(var i=0;i<10;i++){
        if(i == 5){
            break;
        }
        console.log(i);//0,1,2,3,4
    }

    for(var i=0;i<10;i++){
        if(i == 5){
            continue;
        }
        console.log(i);//0,1,2,3,4,6,7,8,9
    }

此文章转载并借鉴:https://www.cnblogs.com/zl-light/p/11482005.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值