JavaScriptのfor-of文とは|Claude Codeが使うデータ繰り返し処理を非エンジニア向けに解説
この記事の内容
「Claude Codeが生成したJavaScriptのコードを見ても、なぜ繰り返し処理が3種類もあるのか分からない」——そんな疑問を持ったことはありませんか?
JavaScriptには繰り返し処理の書き方が複数あり、その中でも「for-of文」は、配列やDOM要素などのデータを順番に処理するための最もシンプルで現代的な書き方です。2015年以降に標準化されたこの構文は、今やWebシステムの業務自動化スクリプトで頻繁に使われています。
この記事では、JavaScriptを全く知らない非エンジニアの経営者・管理職の方に向けて、for-of文の概念・読み方・他の繰り返し構文との違い・そしてClaude Codeが生成するWebスクリプトでの活用シーンを解説します。コードを書けるようになることが目標ではなく、「コードを読んで意図を理解できるようになること」を目指します。
この記事で得られること:
01 WHAT IS FOR-OF JavaScriptのfor-of文とは|「繰り返し」をシンプルに書く構文 ES2015以降の現代的な繰り返し処理の標準
for-of文は、JavaScriptの繰り返し処理(ループ)を書くための構文のひとつです。配列(リスト)・文字列・Map・Setなど、「順番に取り出せる」データ(イテラブルオブジェクト)に対して、1件ずつ処理を実行するときに使います。
📚 用語解説
for-of文:JavaScriptでイテラブルオブジェクト(配列・文字列など)の各要素を順番に処理するためのループ構文。「for (const 変数 of データ) { 処理 }」と書く。ES2015(ECMAScript 2015)で導入された現代的な書き方で、従来のfor文より簡潔に書ける。
📚 用語解説
ECMAScript(エクマスクリプト):JavaScriptの標準仕様書。「ES2015」「ES6」などと略されることが多い。Ecma Internationalという標準化団体が定める仕様で、毎年更新される。for-of文はES2015(2015年版)で追加された。「最新のJS機能を使っているコードか古い書き方か」を判断する基準となる。
日常業務の言葉で言えば、「顧客リストを1件ずつ読み上げながら、それぞれに同じ処理をする」という作業に対応します。例えば「全顧客にお礼メールを送る」「商品リストの価格を10%アップする」といった、「全部のデータに同じことをする」パターンで使います。
| 日常業務のイメージ | JavaScriptのfor-of文で表現すると |
|---|---|
| 参加者リストを1件ずつ読み上げる | for (const person of attendeeList) { ... } |
| 商品リストの価格を全件確認する | for (const product of productList) { ... } |
| メールの全件を読み込む | for (const mail of allMails) { ... } |
| CSV全行を1行ずつ処理する | for (const row of csvData) { ... } |
このように、for-of文は「リストの全件を順番に処理する」という繰り返し作業を1行で表現できる便利な構文です。
02 SYNTAX & READING for-of文の基本構文と読み方 「何を処理しているのか」をコードから読み取る
for-of文の基本的な構文は以下の通りです。
for-of文の基本構文
for (const 変数名 of イテラブルオブジェクト) {
// 各要素に対して実行する処理
}
日本語で読み替えると「イテラブルオブジェクトの各要素を変数に取り出しながら、{ }内の処理を繰り返せ」という命令です。
2-1. 具体的な読み方:配列を処理するfor-of
配列(リスト)の全要素を処理する例
const customers = ["田中花子", "鈴木一郎", "佐藤三郎"];
for (const name of customers) {
console.log(`${name}様、ありがとうございました。`);
}
// 出力結果:
// 田中花子様、ありがとうございました。
// 鈴木一郎様、ありがとうございました。
// 佐藤三郎様、ありがとうございました。
このコードの読み方:
このパターンを理解できれば、「for (const X of Y)」という形のコードを見たとき、「YというリストのデータをX一件ずつ取り出して処理している」と即座に読み取れます。
2-2. オブジェクトの配列を処理する(実務でよく見るパターン)
オブジェクトの配列を処理する(Claude Codeが頻繁に使うパターン)
const orders = [
{ id: 1001, customer: "田中", amount: 50000 },
{ id: 1002, customer: "鈴木", amount: 120000 },
{ id: 1003, customer: "佐藤", amount: 30000 },
];
let totalAmount = 0;
for (const order of orders) {
console.log(`注文${order.id}: ${order.customer} - ¥${order.amount}`);
totalAmount += order.amount; // 合計金額を加算
}
console.log(`合計: ¥${totalAmount}`);
このパターンは「注文データのリストを1件ずつ読み込んで、合計金額を計算する」という売上集計処理です。Claude Codeが生成するWebシステムのスクリプトで、このような構造は非常に頻繁に登場します。
for-ofを見たら「リストを1件ずつ処理している」と理解する。{ }内の処理が「各件に何をしているか」です。上の例では「各注文の情報を表示して、合計に加算している」と読み取れます。
03 FOR VS FOR-IN VS FOR-OF for文・for-in文・for-of文の3つの違い どれを使うべきかの判断フレームを整理する
JavaScriptには「繰り返し処理」を書く方法が3つあります。Claude Codeのコードを読んでいると全て登場するため、違いを理解しておくことが重要です。
| 構文 | 何を繰り返すか | 主な使い道 | 特徴 |
|---|---|---|---|
| for文 | 決まった回数(0, 1, 2, ...N) | 「N回繰り返す」など回数が決まっている場合 | 昔からある書き方。現代では for-of が多い |
| for-in文 | オブジェクトのキー名 | オブジェクト(辞書型)のキーを順番に処理したい場合 | プロパティ名を取り出す |
| for-of文 | イテラブルの各要素(値) | 配列・文字列・Mapの各値を順番に処理したい場合 | 現代的な書き方。簡潔で読みやすい |
3-1. for文(古典的な回数指定ループ)
for文:「N回繰り返す」のに使う
// 0から4まで5回繰り返す
for (let i = 0; i < 5; i++) {
console.log(`${i}回目の処理`);
}
for文は「何回繰り返すか」が決まっているときに使います。しかし現代のJavaScriptでは、このパターンは多くの場合for-of文で書き換えられています。「for (let i = 0; ...)」という書き方を見たら「昔からある書き方」と認識してください。
3-2. for-in文(オブジェクトのキーを取り出す)
for-in文:オブジェクトのキー名を取り出す
const employee = {
name: "田中花子",
department: "営業部",
age: 35
};
for (const key in employee) {
console.log(`${key}: ${employee[key]}`);
}
// 出力:
// name: 田中花子
// department: 営業部
// age: 35
for-in文はオブジェクト(キーと値のペアで管理するデータ)のキー名を順番に取り出します。for-ofと混同しやすいですが、「of」は配列の「値」を、「in」はオブジェクトの「キー名」を取り出すという違いがあります。
📚 用語解説
DOM(Document Object Model):Webページ(HTML)の内容をプログラムで操作するための仕組み。HTMLの各要素(タグ)が「ノード(節)」として木構造で管理されている。JavaScriptからdocument.querySelectorAll()などを使ってDOMにアクセスし、テキスト変更・スタイル変更・要素追加などをプログラムで行う。
3-3. for-of vs for-in:誤用しやすいポイント
for-of文は「イテラブルオブジェクト」(配列・文字列など)にしか使えません。通常のオブジェクト({key: value}の形)にfor-ofを使うとエラーになります。Claude Codeのコードで「TypeError: is not iterable」というエラーが出たら、for-ofを非イテラブルオブジェクトに使っていることが原因の一つです。
04 ITERABLE OBJECTS イテラブルオブジェクトとは|for-ofが使える対象を理解する 「繰り返し可能なデータ」の概念と種類を整理する
for-ofが使えるのは「イテラブルオブジェクト」に限られます。ここを理解しておくと、for-ofを使えるかどうかの判断が即座にできます。
📚 用語解説
イテラブルオブジェクト(Iterable Object):「繰り返し処理(反復処理)ができるオブジェクト」のこと。JavaScriptの内部的にはSymbol.iteratorという特殊なメソッドを持つオブジェクト。配列・文字列・Map・Setなどが該当する。通常の{}オブジェクトはデフォルトではイテラブルではないため、for-ofは使えない。
for-ofが使えるデータ型を整理します。
| データ型 | for-ofで使えるか | 例 | 用途 |
|---|---|---|---|
| 配列(Array) | ○ | [1, 2, 3] | 最も頻繁に使う。顧客リスト・商品リストなど |
| 文字列(String) | ○ | "hello" | 文字を1文字ずつ処理したい場合 |
| Map | ○ | new Map([["a", 1]]) | キー・値ペアの繰り返し処理 |
| Set | ○ | new Set([1, 2, 3]) | 重複なしのデータ集合の処理 |
| NodeList(DOM要素群) | ○ | document.querySelectorAll("div") | HTML要素への一括処理 |
| 通常のオブジェクト{} | ✕ エラー | {name: "田中"} | for-inを使う |
📚 用語解説
NodeList(ノードリスト):HTMLページ内の複数のDOM要素(HTML要素)をリスト形式でまとめたもの。document.querySelectorAll()などで取得できる。for-ofで繰り返し処理ができるため、「全てのボタンにクリックイベントを設定する」「全ての表のセルに色をつける」といった一括操作に使われる。
ビジネスシステムの開発でよく使われるのは配列とNodeListです。Webページの表(テーブル)の全行にスタイルを適用したり、フォームの全入力欄をバリデーションしたりする場面でfor-ofが活躍します。
05 CLAUDE CODE USE CASES Claude CodeのJSスクリプトでfor-ofが使われるシーン 実際に生成されるコードのパターンを読む
Claude Codeが生成するJavaScriptスクリプトで、for-ofが使われる典型的なシーンを紹介します。これらのパターンを知っておくと、生成されたコードの意図がすぐに分かります。
APIやDBから
配列で受け取る
1件ずつ処理
各要素に対して
処理を実行
別の配列に
push()で追加
Slack/Sheets/
メールに送信
5-1. CRMデータの一括処理
CRMから取得した商談データを一括集計する(Claude Codeが生成するパターン)
// APIから取得した商談データ(配列)
const deals = await fetchDealsFromCRM();
let totalAmount = 0;
const wonDeals = []; // 成約済み商談を格納するリスト
for (const deal of deals) {
if (deal.status === "won") { // 成約済みだけを対象に
totalAmount += deal.amount; // 合計金額を加算
wonDeals.push(deal.id); // 成約商談IDをリストに追加
}
}
// 結果をSlackに通知
await postToSlack(`今月成約: ${wonDeals.length}件 / ¥${totalAmount.toLocaleString()}`);
このコードを読む視点:
5-2. Webページの要素一括操作
フォームの全入力欄を一括バリデーション
// HTMLページの全ての必須入力欄を取得
const requiredFields = document.querySelectorAll("input[required]");
const errors = []; // エラーを収集するリスト
for (const field of requiredFields) {
if (field.value.trim() === "") {
field.classList.add("error-highlight"); // 空欄を赤くハイライト
errors.push(field.name); // エラー項目名を記録
}
}
if (errors.length > 0) {
alert(`入力してください: ${errors.join(", ")}`);
}
これはWebフォームの「送信ボタンを押したとき、必須項目が空欄かチェックする」処理です。for-ofでHTMLの全必須入力欄(NodeList)を1つずつ確認し、空欄のものを赤くハイライトしてエラーリストに追加しています。業務システムの入力バリデーション(入力チェック)で頻繁に使われるパターンです。
06 BUSINESS PATTERNS ビジネスWebシステムでのfor-of活用パターン 経営者・管理職が知っておくべき実務パターンのカタログ
ビジネスWebシステムでfor-ofが使われる具体的なパターンを整理します。「こういう処理をClaude Codeに頼むとfor-ofが使われる」という理解ができるようになります。
| 業務処理 | for-ofの役割 | 処理のイメージ |
|---|---|---|
| メール一括送信 | 送信先リストを1件ずつ取り出す | 顧客メールアドレスの配列をfor-ofで回してAPIを叩く |
| CSV一括インポート | CSVの各行を1行ずつ処理 | 読み込んだCSVの全行をfor-ofでDBに登録 |
| レポート集計 | データリストを1件ずつ集計 | 売上データ配列をfor-ofで回して合計・平均を計算 |
| フォームバリデーション | 全入力欄を1つずつチェック | querySelectorAllで取得したNodeListをfor-ofでチェック |
| バナー一括更新 | 複数バナー要素を一括変更 | 全バナーDOMをfor-ofで回してクラス・テキストを更新 |
| APIデータ変換 | APIレスポンスを加工 | 返ってきた配列をfor-ofで回して必要なフォーマットに変換 |
これらの処理の共通点は「複数件のデータを同じ手順で処理する」という点です。「全顧客に同じメール」「全商品の価格を一律更新」「全入力欄を同じルールでチェック」——このような「全件一括処理」の需要がビジネスシステムには溢れており、for-ofはその実装の中核を担います。
「全件に同じ
処理をしたい」
「〇〇リストを
一括処理して」
配列をループして
各件を処理
手動作業が
自動化される
「この商品リストの全件を一括処理してほしい」という指示より「この配列をfor-ofでループして各商品の価格を10%増やすスクリプトを生成して」と指示できると、Claude Codeはより精確なコードを生成します。「リスト全件処理」=「for-of」という対応関係を知ることで指示の質が上がります。
07 CONCLUSION まとめ|for-ofを知ることでコードリーディング力が上がる理由 「繰り返し処理」の理解が業務自動化の視野を広げる
この記事では、JavaScriptのfor-of文について非エンジニア向けに解説しました。最後にポイントを振り返ります。
「JavaScriptを書けるようになること」は今日の目標ではありません。Claude Codeが生成するコードを読んで「ああ、これは全顧客に同じ処理をしているんだな」と理解できるようになること——それだけで業務自動化のスピードと精度が大きく変わります。
WebシステムのJavaScript自動化をAI鬼管理が支援します
「Webフォームの一括チェックを自動化したい」「CRMのデータを毎日自動集計したい」という課題を、Claude Codeを活用して解決します。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
AI活用を自社で回せるようになりたい方へ
AI鬼管理
Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。
よくある質問
Q. for-ofとfor-inはどちらを使えばいいですか?
A. 処理したいデータの種類で選びます。配列・文字列・Mapなどのイテラブルなデータならfor-of、通常のオブジェクト({}形式でキーと値のペア)のキー名を取り出したいならfor-inです。Claude Codeに「配列を処理して」と指示するとfor-ofが使われ、「オブジェクトのキーを取り出して」と指示するとfor-inが使われます。
Q. for-ofは古いブラウザでも使えますか?
A. ES2015(2015年導入)の仕様なので、Internet Explorer(IE)では動作しません。ただし現在のビジネスシステムはモダンブラウザ(Chrome・Edge・Firefox・Safari)前提が多く、IEサポートは終了しているため実務上は問題ありません。Claude Codeが生成するコードもモダンブラウザ前提です。
Q. for-ofの中でbreakやcontinueは使えますか?
A. 使えます。「break」で繰り返しを途中で終了、「continue」で現在の要素をスキップして次に進めます。例えば「エラーが出たら繰り返しを止める(break)」「条件に合わない要素はスキップ(continue)」という制御ができます。
Q. for-ofと同じことをforEach()でもできますか?
A. はい、配列の場合は多くの場面でforEach()でも同じ処理ができます。ただし、for-ofは「break/continue」が使え、awaitを含む非同期処理でも正しく動作する点がforEachと異なります。Claude Codeはケースによってfor-ofとforEachを使い分けます。
Q. for-ofで処理速度が問題になることはありますか?
A. 数万件以下のデータなら体感できる速度差はほとんどありません。ただし数百万件以上のデータを処理する場合、通常のfor文の方がわずかに高速なケースがあります。ビジネス業務での一般的なデータ量ではfor-ofを選んで問題ありません。
Q. Node.jsのバックエンドスクリプトでもfor-ofは使えますか?
A. はい、使えます。Node.jsはES2015以降をサポートしているため、for-ofは問題なく動作します。Claude Codeがバックエンドの自動化スクリプト(ファイル処理・API連携・DB操作など)を生成するときにもfor-ofは頻繁に使われます。
Q. for-ofを使った処理をClaude Codeに依頼する場合の指示の仕方は?
A. 「〇〇の一覧データを1件ずつ処理して〜をして」と自然言語で指示するだけで、Claude Codeは自動的にfor-ofを使ったコードを生成します。「for-ofを使って」と明示する必要はありません。ただし、「await(非同期処理)と組み合わせて」「breakが必要な条件がある場合は教えて」など、追加の制約を伝えることでより適切なコードが得られます。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




