3.6 KiB
3.6 KiB
id, title, challengeType, videoUrl, localeTitle
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
5a2efd662fb457916e1fe604 | Iterate with JavaScript Do...While Loops | 1 | 使用JavaScript迭代...循环 |
Description
do...while
”循环,因为它首先将“ do
”循环内部代码的一次传递,无论如何,然后它运行“ while
”指定条件为真一旦这种情况不再真实就停止。我们来看一个例子。 var ourArray = [];这与任何其他类型的循环一样正常,结果数组看起来像
var i = 0;
做{
ourArray.push(ⅰ);
我++;
} while(i <5);
[0, 1, 2, 3, 4]
。然而,什么使得do...while
与其他循环不同,但是当条件在第一次检查时失败时它的行为如何。让我们看看这个在行动。这是一个常规的while循环,只要i < 5
,它就会在循环中运行代码。 var ourArray = [];请注意,我们将
var i = 5;
而(i <5){
ourArray.push(ⅰ);
我++;
}
i
的值初始化为5.当我们执行下一行时,我们注意到i
不小于5.所以我们不执行循环内的代码。结果是ourArray
最终没有添加任何内容,因此当上面示例中的所有代码完成运行时,它仍然看起来像这个[]
。现在,看一下do...while
循环。 var ourArray = [];在这种情况下,我们将
var i = 5;
做{
ourArray.push(ⅰ);
我++;
} while(i <5);
i
的值初始化为5,就像我们使用while循环一样。当我们到达下一行时,没有检查i
的值,所以我们转到花括号内的代码并执行它。我们将在数组中添加一个元素并在进行条件检查之前递增i
。然后,当我们检查i < 5
看到i
现在是6,这不符合条件检查。所以我们退出循环并完成。在上面的例子的末尾, ourArray
的值是[5]
。本质上, do...while
循环确保循环内的代码至少运行一次。让我们尝试通过将值推送到数组来实现do...while
循环。 Instructions
while
循环更改为do...while
循环,以便循环将数字10推送到myArray
,当代码完成运行时, i
将等于11
。 Tests
tests:
- text: 你应该使用<code>do...while</code>循环。
testString: 'assert(code.match(/do/g), "You should be using a <code>do...while</code> loop for this.");'
- text: '<code>myArray</code>应该等于<code>[10]</code> 。'
testString: 'assert.deepEqual(myArray, [10], "<code>myArray</code> should equal <code>[10]</code>.");'
- text: <code>i</code>应该等于<code>11</code>
testString: 'assert.deepEqual(i, 11, "<code>i</code> should equal <code>11</code>");'
Challenge Seed
// Setup
var myArray = [];
var i = 10;
// Only change code below this line.
while (i < 5) {
myArray.push(i);
i++;
}
After Test
console.info('after the test');
Solution
// solution required