Skip to content
Playground

演習: 配列とループ

以下の配列について、3番目の要素と要素数を出力してください。

const scores = [80, 65, 90, 70, 85];

出力例:

90
5
ヒント

インデックスは 0 から始まることに注意してください。要素数は .length で取得できます。

以下の配列の全要素を for ループで出力してください。

const fruits = ["りんご", "みかん", "ぶどう", "もも", "いちご"];
ヒント

i0 から fruits.length 未満まで回し、fruits[i] で各要素にアクセスします。

以下のコードの出力結果を予測してから実行してください。

const data = [5, 3, 8, 1, 4];
let total = 0;
for (let i = 0; i < data.length; i++) {
if (data[i] % 2 === 1) {
total = total + data[i];
}
}
console.log(total);
ヒント

data[i] % 2 === 1 は「奇数かどうか」の判定です。配列の各要素について、奇数なら total に足し、偶数なら何もしません。

以下の配列の合計値と平均値を計算して出力してください。

const temperatures = [22, 25, 19, 28, 24, 21, 27];
ヒント

合計を求めてから、合計を要素数で割ると平均が求まります。

以下の配列から、70 点以上のスコアの個数を数えて出力してください。

const scores = [85, 42, 73, 91, 68, 55, 79, 96, 60, 88];
ヒント

カウント用の変数を 0 で初期化し、条件を満たす要素が見つかるたびに 1 を足します。

以下のコードの出力結果を予測してから実行してください。

const prices = [120, 350, 80, 500, 200];
let count = 0;
let total = 0;
for (let i = 0; i < prices.length; i++) {
if (prices[i] >= 200) {
count++;
total = total + prices[i];
}
}
console.log(count);
console.log(total);
ヒント

配列の各要素について、200 以上かどうかを判定します。条件を満たす要素だけが counttotal に影響します。

以下の配列から最も小さい値を見つけて出力してください。

const data = [45, 12, 78, 34, 6, 91, 23];
ヒント

最大値探索と同じ考え方です。比較の向きを逆にしてください。

以下のコードの出力結果を予測してから実行してください。

const values = [3, 1, 4, 1, 5];
let sum = 0;
for (let i = 0; i < values.length; i++) {
sum = sum + values[i];
console.log(sum);
}
ヒント

sum の変化を1ステップずつ追ってください。i = 0 のとき sum = 0 + 3 = 3i = 1 のとき sum = 3 + 1 = 4、…と続きます。

以下の配列の要素を末尾から先頭に向かって出力してください。新しい配列は作らず、ループの工夫だけで実現します。

const colors = ["", "", "", "", ""];

出力例:

ヒント

for ループを逆向きに回します。配列の最後の要素のインデックスは .length - 1 です。

5-j. 穴埋め: 最大値のインデックス

Section titled “5-j. 穴埋め: 最大値のインデックス”

配列から最高点のインデックス(位置)を求めるプログラムがあります。/* ??? */ に入る条件式を、選択肢から選んでください。

const scores = [72, 85, 60, 93, 78];
let maxIndex = 0;
for (let i = 1; i < scores.length; i++) {
if (/* ??? */) {
maxIndex = i;
}
}
console.log("最高点: " + scores[maxIndex]);

選択肢:

  • (ア) scores[i] > scores[maxIndex]
  • (イ) scores[i] > maxIndex
  • (ウ) i > maxIndex
  • (エ) scores[maxIndex] > scores[i]
ヒント

maxIndex は「今のところ一番大きい要素のインデックス」です。新しい要素が今の最大値より大きいかを比較する必要があります。各選択肢について、何と何を比較しているかを確認してください。

以下の配列から、2番目に大きい値を見つけて出力してください。

const numbers = [34, 72, 15, 88, 43, 88, 61];

最大値が複数ある場合(この例では 88 が2つ)、2番目に大きい値は 72 です。

ヒント

max(最大値)と secondMax(2番目に大きい値)の2つの変数を用意します。ループの中で、numbers[i] > max のときは secondMax に今の max を入れてから max を更新します。

フィボナッチ数列の最初の 20 項を出力してください。フィボナッチ数列は、最初の2つが 0, 1 で、以降は直前の2つの数の合計です。

0
1
1
2
3
5
8
13
21
34
...
ヒント

const fib = [0, 1] のように最初の2項を入れた配列を用意します。3項目以降は fib[i - 1] + fib[i - 2] で求めて .push() で追加していきます。