javascript中有哪些循环方法


本文摘自PHP中文网,作者青灯夜游,侵删。

方法:1、for循环;2、for in循环;3、while循环;4、do while循环;5、forEach循环;6、map();7、filter();8、some();9、every();10、reduce();11、for of循环等。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑

JavaScript 中的12种循环遍历方法

1、for 循环

1

2

3

4

5

6

7

let arr = [1,2,3];

for (let i=0; i<arr.length; i++){

 console.log(i,arr[i])

}

// 0 1

// 1 2

// 2 3

for 循环是 Js 中最常用的一个循环工具,经常用于数组的循环遍历。

2、for in 循环

1

2

3

4

5

6

let obj = {name:'zhou',age:'**'}

for(let i in obj){

 console.log(i,obj[i])

}

// name zhou

// age **

for in 循环主要用于遍历普通对象,i 代表对象的 key 值,obj[i] 代表对应的 value,当用它来遍历数组时候,多数情况下也能达到同样的效果,但是你不要这么做,这是有风险的,因为 i 输出为字符串形式,而不是数组需要的数字下标,这意味着在某些情况下,会发生字符串运算,导致数据错误,比如:‘52’+1 = ‘521’ 而不是我们需要的 53。

另外 for in 循环的时候,不仅遍历自身的属性,还会找到 prototype 上去,所以最好在循环体内加一个判断,就用 obj[i].hasOwnProperty(i),这样就避免遍历出太多不需要的属性。

3、while循环
同样的遍历 cars 数组,先用 for 循环方法

1

2

3

4

5

6

7

8

9

10

11

let cars=["BMW","Volvo","Saab","Ford"];

let i=0;

for (;cars[i];)

{

console.log(cars[i])

i++;

};

// BMW

// Volvo

// Saab

// Ford

然后是 while 循环方法

1

2

3

4

5

6

7

cars=["BMW","Volvo","Saab","Ford"];

var i=0;

while (cars[i])

{

console.log(cars[i] + "<br>")

i++;

};

我们发现,它们可以实现同样的效果,事实上它们底层的处理是一样的,不过 for 循环可以把定义、条件判断、自增自减操作放到一个条件里执行,代码看起来方便一些,仅此而已。

4、do while 循环

1

2

3

4

5

6

7

8

9

let i = 3;

do{

 console.log(i)

 i--;

}

while(i>0)

// 3

// 2

// 1

do while 循环是 while 循环的一个变体,它首先执行一次操作,然后才进行条件判断,是 true 的话再继续执行操作,是 false 的话循环结束。

5、Array forEach 循环

1

2

3

4

5

6

7

let arr = [1,2,3];

arr.forEach(function(i,index){

 console.log(i,index)

})

// 1 0

// 2 1

// 3 2

forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度,他有三个参数,只有第一个是必需的,代表当前下标下的 value。

阅读剩余部分

相关阅读 >>

js中怎么写正则表达式

knockoutjs+select2 人员搜索功能代码分享

c和javascript的区别是什么

javascript中的let是什么

javascript是什么公司开发的

javascript join方法怎么用

javascript如何检查一个对象是否为空(代码示例)

javascript如何添加一个段落

javascript中怎么获取方法(函数)的参数个数

javascript的三大组成部分是什么

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...