saber 酱的抱枕

Fly me to the moon

03/26
2024
学习 软件

JavaScript 的循环/遍历方法,你用的最多的是哪个?

起因是我在知乎看到了这个问题,提问者列出了 4 个方法: for forEach map reduce,问大家用的最多的是哪个。
巧了,我哪个都不是,我用 for of。看完了那些回答,我才发觉 for of 怎么比我想象中冷门很多呢?难道是因为它相比 for 算是高级的,相比 forEach 之类算是低级的,所以夹在中间不上不下了?但也许正因为如此,我才喜欢用它,因为它既比 for 简洁,又比 forEach 之类强大(例如可以 break,可以循环执行 await)。
我写了个回答详细说明了一下,感兴趣的话可以看看:
https://www.zhihu.com/question/605580848/answer/3443452329

JavaScript 的循环/遍历方法,你用的最多的是哪个?

04/20
2015
学习

js中break和continue结合标签语句使用

在js里的循环语句中,break可以结束循环,continue可以跳过符合条件的本次循环。在有多重循环时,内部循环的break和continue可以结合标签语句来影响外部循环的执行。

var num=0;
cc:
for (var i = 10; i > 0; i--) {
	for (var j = 10; j > 0; j--) {
		if (i==5&&j==5) {
			break cc;
		};
		num++;	
	};
};
alert(num);//num是55

当满足i==5且j==5时,不仅结束了内部这个循环,还结束了标签为cc的外部循环。如果将break换成continue,num将会是95,因为这一次跳过循环跳过了外部的循环。

js中break和continue结合标签语句使用

04/11
2015
学习

js使用for...in遍历数组内的元素

我们常常用到for循环。有时候,合适的情况下使用for...in循环可以使得代码更加简洁。

    <script type="text/javascript">
     var a=['1','2','3','4','5'];
     for (var i = a.length - 1; i >= 0; i--) {
      	document.write(a[i]);
      };
     for(x in a){document.write(a[x]);}
    </script>

上面两个循环执行的效果是等价的。但是,for循环的循环方向(i是自增还是自减)是可控的。像上面的代码,for循环将输出"54321",然而for...in是正序输出,它将输出"12345"。
for...in也可以使用break和continue来干预循环操作。
另外,除非是像上面那样很简单的操作,否则不太推荐使用for...in。

js使用for...in遍历数组内的元素

04/9
2015
游戏

js跳过循环和跳出循环

js的循环中可以使用continue跳过本次循环,使用break来跳出整个循环。

    <script type="text/javascript">
        for (var i = 0; i <= 10; i++) {
            if (i==5) continue;
            if (i==9) break;
            document.write(i+' ');
        };
    </script>

上面的示例中,如果不干预循环操作,那么在页面上将会输出0-10这几个数字。但是干预之后,5不会出现,9和10也不会出现。因为循环到5的时候跳过了本次循环应该执行的操作,而到9的时候,又跳出了循环。
ps:if语句中如果条件后只有一句代码,可以省略花括号。

js跳过循环和跳出循环