カテゴリ: JavaScript 更新日: 2025/10/01

JavaScriptのfor...in文でオブジェクトをループ処理する方法

JavaScriptのfor...in文でオブジェクトをループ処理する方法
JavaScriptのfor...in文でオブジェクトをループ処理する方法

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptでオブジェクトの中にある情報を繰り返し取り出すにはどうしたらいいですか?」

先生

「オブジェクトの中身を一つずつ見るときは、for...in文という方法がありますよ。」

生徒

「for...in文って何ですか?for文やwhile文とは違うんですか?」

先生

「似ていますが、特にオブジェクト(名前と値のペア)を繰り返す専用のループです。初心者にも分かるように説明しますね!」

1. for...in文とは何?

1. for...in文とは何?
1. for...in文とは何?

for...in文はオブジェクトのプロパティ(キーと値のペア)を一つずつ取り出すためのループ処理です。配列ではなく、名前付きの項目が入ったオブジェクトに向いています。

オブジェクトとは、たとえば「人の名前と年齢」などの情報をまとめたものです。

2. for...in文の基本構文

2. for...in文の基本構文
2. for...in文の基本構文

基本的な書き方は次の通りです。


for (let key in object) {
  // object[key] にアクセス
}

ここで、keyはプロパティ名を表す文字列、objectはループしたいオブジェクトです。

3. 実際の例:オブジェクトの情報を表示する

3. 実際の例:オブジェクトの情報を表示する
3. 実際の例:オブジェクトの情報を表示する

たとえば、次のようなオブジェクトがあります。


const person = {
  name: "太郎",
  age: 28,
  city: "東京"
};
for (let key in person) {
  console.log(key + ":" + person[key]);
}

name:太郎
age:28
city:東京

プロパティ名(name・age・city)がkeyに入り、person[key]で値にアクセスしています。

4. for...in文の使いどころ

4. for...in文の使いどころ
4. for...in文の使いどころ

for...in文は次のような場面に便利です:

  • オブジェクトのすべてのプロパティを調べたいとき
  • フォームの入力項目や設定項目を一括で処理したいとき
  • 動的に変わるオブジェクトの内容を扱いたいとき

5. 注意点:プロトタイプ継承のプロパティもループされる

5. 注意点:プロトタイプ継承のプロパティもループされる
5. 注意点:プロトタイプ継承のプロパティもループされる

JavaScriptのオブジェクトは継承で親から受け継いだプロパティも持てます。そのため、for...in文は見かけ以上のプロパティも取り出す可能性があります。

その回避策としては、hasOwnProperty()メソッドで「自分自身のプロパティかどうか」をチェックすると安全です。

6. 実際に安全に使う例

6. 実際に安全に使う例
6. 実際に安全に使う例

先ほどのpersonオブジェクトにfor...in文とチェックを加えてみます。


for (let key in person) {
  if (person.hasOwnProperty(key)) {
    console.log(key + "→" + person[key]);
  }
}

name→太郎
age→28
city→東京

こうすることで、自分が定義したプロパティだけを安全に扱えます。

7. 配列に使うときは注意

7. 配列に使うときは注意
7. 配列に使うときは注意

for...in文は配列にも使えますが、配列は順番が大切なのでfor...for...of文を使う方が扱いやすいです。

オブジェクトのループには最適ですが、配列には別のループのほうが適しています。

8. for...in文のメリットとデメリット

8. for...in文のメリットとデメリット
8. for...in文のメリットとデメリット
  • メリット:オブジェクトの内容を簡単にくり返せる
  • デメリット:継承プロパティも表示される可能性がある

メリットを活かすには、hasOwnProperty()チェックを併用して安全に使うのがおすすめです。

9. まとめなしに記事はここで終わり

9. まとめなしに記事はここで終わり
9. まとめなしに記事はここで終わり

今回はJavaScriptのfor...in文を、初心者でもわかるように丁寧に解説しました。オブジェクトのプロパティを一つずつ扱うときに役立つ仕組みです。使い方や注意点を押さえて、プログラミングに挑戦してみてください。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう