观鸟者

观鸟者

学习练习

简介

for 循环是最常用的语句之一,用来重复执行某段逻辑。在 JavaScript 中,它由for关键字、包在圆括号里的_头部_,以及包在大括号里、含有循环_体_的代码块组成。

for (initialization; condition; step) {
  // code that is executed repeatedly as long as the condition is true
}

初始化部分通常用来设置一个计数器变量,条件用来判断循环应该继续还是停止,而在每次重复结束时,步进会让计数器自增。头部的各个部分之间用分号分隔。

const list = ['a', 'b', 'c'];
for (let i = 0; i < list.length; i++) {
  // code that should be executed for each item list[i]
}

定义步进时,常常会像上面的例子那样使用 JavaScript 的自增或自减运算符。这些运算符会就地修改变量。++让一个数字加一,--让一个数字减一。

let i = 3;
i++;
// i is now 4

let j = 0;
j--;
// j is now -1

说明

你是一位热衷于观鸟的爱好者,会记录有多少只鸟来过你的花园。 通常,你会用笔记本画正字来数鸟,但你希望能更好地处理这些数据。 你已经把过去几周记在笔记本上的每日鸟类数量数字化了。

现在,你想确定自己一共数了多少只鸟,计算出某一周的鸟类数量,并修正一处计数错误。

Note

为了练习,请使用for循环来完成下面的每个任务。

1. 确定你到目前为止数到的鸟的总数

我们先从整体上了解数据,开始分析。 看看自从开始记录以来,你一共数了多少只鸟。

实现一个函数totalBirdCount,它接受一个类数组对象,其中包含每天的鸟类数量。 它应返回你数到的鸟的总数。

birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
totalBirdCount(birdsPerDay);
// => 34

2. 计算某一周来访的鸟的数量

现在你对这些鸟类数量数据已经有了大致的了解,接下来你想做更细致的分析。

实现一个函数birdsInWeek,它接受一个包含每天鸟类数量的类数组对象和一个周数。 它返回你在那一周数到的鸟的总数。 你可以假定每一周都记录完整。

birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
birdsInWeek(birdsPerDay, 2);
// => 12

3. 修正一处计数错误

你意识到,在你一直努力记录鸟类的这些日子里,有一只鸟一直躲在花园远处的角落。 你发现,这只鸟每隔一天就会待在你的花园里。 你不确定它在中间那些天究竟在哪里,但肯定不在你的花园里。 你的观鸟直觉还告诉你,这只鸟在你列表里记录的第一天就在你的花园里。

根据这些新信息,编写一个函数fixBirdCountLog,它接收一个包含每天数到的鸟类数量的类数组对象作为实参。它应通过修改给定的数组来修正这个计数错误。

birdsPerDay = [2, 5, 0, 7, 4, 1];
fixBirdCountLog(birdsPerDay);
// => [3, 5, 1, 7, 5, 1]
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
JavaScript Exercism

准备好开始 观鸟者 了吗?

注册 Exercism,借助 37 个概念159 个练习 和真人导师指导,学习并掌握 JavaScript,全部免费。