JavaScriptの配列をループ処理する方法(for, forEach, mapなど)
生徒
「先生、JavaScriptで配列の中にあるたくさんのデータを全部順番に処理する方法ってありますか?」
先生
「ありますよ。配列を順番に1つずつ見るための『ループ処理』という仕組みを使います。JavaScriptにはいくつか方法があるので、わかりやすく説明しますね。」
生徒
「ループ処理って難しそうですが、具体的にどんな書き方があるんですか?」
先生
「順番に紹介しますから、一緒にコードを見ていきましょう!」
1. for文(基本的なループ)とは?
まずはJavaScriptの基本的な繰り返し処理である for 文です。これは決まった回数だけ同じ処理を繰り返す命令です。
配列の長さ(要素数)を使って、0から最後の番号まで順に処理します。
let fruits = ["りんご", "バナナ", "みかん"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
りんご
バナナ
みかん
このコードは、「iを0から順に増やしながら、配列のi番目の要素を表示する」という意味です。
2. forEachメソッド(配列専用の繰り返し)とは?
forEach は配列専用の繰り返し処理用の命令で、配列の要素を一つずつ簡単に処理できます。関数を使うため、少し新しい書き方ですがとても便利です。
let fruits = ["りんご", "バナナ", "みかん"];
fruits.forEach(function(item) {
console.log(item);
});
りんご
バナナ
みかん
この場合、item は「今見ている配列の要素」を指します。for文より簡単に書けるのでおすすめです。
3. mapメソッド(配列の変換)とは?
map メソッドは、配列の要素を一つずつ別の形に変えて新しい配列を作りたいときに使います。
例えば、果物の名前をすべて大文字に変えたいときは以下のように使います。
let fruits = ["りんご", "バナナ", "みかん"];
let upperFruits = fruits.map(function(item) {
return item.toUpperCase();
});
console.log(upperFruits);
["リンゴ", "バナナ", "ミカン"]
このように、map は元の配列を変えずに、新しい配列を作るために使います。
4. forループとforEach、mapの違いをわかりやすく説明
for文はプログラム全般で使う繰り返し処理で、自由に条件を設定できますが、少しコードが長めです。
forEachは配列のすべての要素に対して何か処理をしたい時に使い、コードがすっきり書けますが、新しい配列は作りません。
mapは配列の要素を別のものに変えて新しい配列を作る時に使います。
使い分けるポイントは、「ただ順番に処理したいだけならforやforEach」、「配列を変換したいならmap」です。
5. もう少しだけ詳しく:アロー関数を使った書き方
JavaScriptでは関数を簡単に書ける「アロー関数」という書き方もあります。先ほどのforEachをアロー関数で書くとこうなります。
let fruits = ["りんご", "バナナ", "みかん"];
fruits.forEach(item => console.log(item));
短くて見やすいので、慣れてきたら使ってみてください。
6. ループ処理の注意点:無限ループに気をつけよう
ループ処理を書くときは「いつ終わるか」を必ず考えましょう。for文では i < fruits.length のように条件を書きますが、条件がずっと真(true)のままだと永遠に繰り返してしまいます。
プログラムが止まらなくなるので、必ず条件が変わるようにしましょう。
まとめ
ここではこれまでの記事内容をふりかえりながら、JavaScriptで配列を扱うときに知っておきたい考え方や、実際に使う場面ごとの選び方などを丁寧に整理していきます。とくに配列のループ処理は日常的に使う場面が多く、学習しておくと今後のコードやアプリケーション開発がとても楽になります。文章だけで理解するのではなく、実際のコードと一緒に頭の中で動きをイメージしながら読み進めるとより深く理解できます。今回取り上げた「for文」「forEach」「map」はどれも配列を順番に処理するための仕組みですが、それぞれに個性があり、向いている場面が少しずつ違います。そこでここでは、記事で学んだ内容を自然な流れでまとめ、あとから読み返したときにも使いやすいように整理していきます。 配列を扱うときにまず思い浮かぶのが基本となるfor文で、数字を増やしながら一つずつ処理していく伝統的な方法です。自由度が高く、細かい条件を自分で設定できるため、場面によっては最も役立つ手段になります。ただし書く量は少し多めで、慣れていない初心者には読み解くのに時間がかかることもあります。それでもループの基本を理解するという点では欠かせない存在で、配列処理の入り口として覚えておくと後の学習がとてもスムーズになります。 一方でforEachは配列専用の方法で、要素を一つずつ取り出しながら処理を進める形式がとても自然でわかりやすい書き方です。関数を使って処理内容を指定できるため、見た目もすっきりしており、業務の現場でもよく使われます。配列を変形することはできませんが、「ひとつずつ順番に処理する」場面では素直で扱いやすく、初心者でもすぐに使える便利な方法です。 そしてmapは配列の中身を変換して新たな配列を作りたいときに使います。これは特にデータ加工の場面で役に立つ機能で、元の配列を残したまま加工後のデータだけを新しく取り出せるため、安全に変更を加えたいときに最適です。場面ごとの役割を理解して使い分けると、JavaScriptらしいきれいなコードを書くことにつながります。 また、最近ではアロー関数の利用が一般的になってきており、forEachやmapと組み合わせると短く読みやすいコードを書くことができます。記号に慣れるまでは戸惑うかもしれませんが、一度使いこなせるようになると開発効率が大きく向上します。実際に手を動かしながら試してみて、どの書き方が自分に合っているか確かめていくのがおすすめです。 最後に、ループで大切なのは「終わりの条件を正しく設定すること」です。思わぬミスで無限ループが起きてしまうと画面が固まるなどのトラブルにつながるため、特にfor文を使うときには注意が必要です。とはいえ正しい書き方さえ覚えれば恐れる必要はなく、むしろ配列処理の幅が広がり、コードを書くのがどんどん楽しくなっていきます。
サンプルプログラムで理解を深めよう
実際のコードで動きを確認することは理解をより確かなものにします。ここでは記事の最後として、for文・forEach・mapを組み合わせて配列を処理する例を紹介します。これらを見比べながら、目的によってどの処理を選べばよいのか、改めて確認してみてください。
// 果物リスト
let fruits = ["りんご", "ばなな", "みかん", "ぶどう"];
// for文:番号を使って取り出す方法
for (let i = 0; i < fruits.length; i++) {
console.log("for文:" + fruits[i]);
}
// forEach:シンプルに順番に処理
fruits.forEach(item => {
console.log("forEach:" + item);
});
// map:全ての要素を加工して新しい配列を作成
let upper = fruits.map(item => item.toUpperCase());
console.log(upper);
どの書き方も目的に合わせて使い分けることで読みやすいプログラムにつながります。特に配列の加工を伴う場面ではmap、ただ処理したいだけならforEach、細かい制御が必要ならfor文という形で柔軟に使い分けるのが大切です。こうした小さな選択を積み重ねることで、JavaScriptの扱いにも徐々に慣れていき、自分が書きたいコードを無理なく形にしていくことができます。
生徒
「先生、今日学んだ内容を振り返ると、配列のループって思っていたより深いんですね。用途によって書き方が変わるというのが印象的でした。」
先生
「そうですね。同じ配列の処理でも、その場の目的に合わせて方法を選ぶのが大事なんです。慣れてくると自然に使い分けられるようになりますよ。」
生徒
「for文は自由に条件を決められて便利ですが、forEachは短く書けて読みやすく、mapは新しい配列を作るときに強いと覚えておけば良い感じですね。」
先生
「その理解でばっちりです。これから実際のコードを書くときに必ず役に立ちますよ。いろいろな書き方を試しながら、自分が書きやすいスタイルも見つけていきましょう。」
生徒
「ありがとうございます!次の学習でも今回の知識を生かして頑張ります!」