循环的目的是重复一些功能。
一些类型的循环包括:
- for 循环
- while 循环
- for…of 循环
- for…循环
for循环
to 可以写一个简单的 for 循环如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
for (let i = 1; i
<p>要循环数组,我们可以执行以下操作:<br></p>
<pre class = "brush:php;toolbar:false" > const animals = [ 'lizard' , 'fish' , 'turtle' ];
for (let i = 0; i
<p>我们还可以反向循环这个数组:<br></p>
<pre class = "brush:php;toolbar:false" > for (let i = animals.length - 1; i >= 0; i--) {
console.log(i, animals[i]);
}
|
我们还可以循环内循环:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
for (let i = 0; i
<p>如果我们想要迭代数组的数组,这很有用:<br></p>
<pre class = "brush:php;toolbar:false" > const seatingchart = [
[ 'abigale' , 'tim' , 'cynthia' ],
[ 'bob' , 'carter' , 'zane' , 'tanja' ],
[ 'quin' , 'xavier' ],
];
for (let i = 0; i
<h2>
while 循环
</h2>
<p>简单 while 循环的一个例子是:<br></p>
<pre class = "brush:php;toolbar:false" >let num = 0;
while (num
<h2>
中断关键字
</h2>
<p> break 关键字可用于退出 while 循环:<br></p>
<pre class = "brush:php;toolbar:false" >let input = prompt( 'say something:' );
while (true) {
input = prompt(input);
if (input === 'stop copying me' ) {
break ;
}
}
|
它也可以用于退出 for 循环。假设我们有一行:
1
|
let line = [ 'abby' , 'salvia' , 'jamie' , 'carter' , 'john' ];
|
我们想要输出 jamie 之前的每个人,但不输出 jamie:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
for (let i = 0; i
<h2>
for ...of 循环
</h2>
<p>如果我们想打印数组中的每个值,我们可以这样做:<br></p>
<pre class = "brush:php;toolbar:false" >let people = [ 'aGitha' , 'bruce' , 'charlie' , 'dane' , 'ernie' ];
for (let person of people) {
console.log(person);
}
|
为了使之前的座位表示例更清晰,我们可以这样做:
1
2
3
4
5
6
7
8
9
10
11
12
|
const seatingchart = [
[ 'abigale' , 'tim' , 'cynthia' ],
[ 'bob' , 'carter' , 'zane' , 'tanja' ],
[ 'quin' , 'xavier' ],
];
for (let row of seatingchart) {
for (let person of row) {
console.log(person);
}
}
|
for…in 循环
如果我们想迭代对象中的每个键值对,我们可以这样做:
1
2
3
4
5
6
7
8
9
10
11
|
const testscores = {
jim: 34,
abby: 93,
greg: 84,
mark: 95,
melvin: 73,
};
for (let person in testscores) {
console.log(`${person} scored ${testscores[person]}`);
}
|
如果我们想使用 for…of 得到 testscores 的平均值,我们可以这样做:
1
2
3
4
5
6
7
|
let total = 0;
let scores = Object.values(testScores);
for (let score of scores) {
total += score;
}
let avg = total / scores.length;
console.log(avg);
|