🥭

[JavaScript]for...in / for...of とは(備忘録)

2025/02/13に公開
4

1.for…in とは

for...inは、指定したオブジェクトから要素(プロパティ)を順不同に取得できます。
・基本的に取得できるのは、オブジェクトのプロパティ名キー)です。
・値を取得したい場合は、オブジェクト名とプロパティ名を使用します。

for...inの書き方の例
for (const 定数名 in オブジェクト名) {
    // 処理内容
}

2.for...of とは

for...of は、配列や文字列などから順番に値を取得できます。

for...ofの書き方の例
for (const 定数名 of 配列名) {
    // 処理内容
}

3.サンプルプログラム

〇例1:for...in のサンプルプログラム

Sample_1.js
const employee_info = {
    name: '山田',
    gender: '男',
    age: '30',
    occupation: '技術職',
    work_place: '東京都'    
}

for (const detail in employee_info) {
  console.log(`${detail}: ${employee_info[detail]}`);
}
実行結果
name: 山田
gender: 男
age: 30
occupation: 技術職
work_place: 東京都

〇例2:for...of のサンプルプログラム

  • その1
Sample_2.js
const fruit_list = ['リンゴ', 'ブドウ', 'パイナップル'];

const str = '美味しい';

// 配列から値を順番に取り出す
for (const element of fruit_list) {
    console.log(element);
}

// 文字列から値を順番に取り出す
for (const char of str) {
    console.log(char);
}
実行結果
リンゴ
ブドウ
パイナップル
美
味
し
い
  • その2
Sample_3.js
const number = [10, 15, 20];

for (let value of number) {
    value += 5;
    console.log(value);
}
実行結果
15
20
25
  • その3
Sample_4.js
const number = [0, 10, 20, 30, 40, 50];
const target = 30;

for (let value of number) {
    if (value === target) {
        console.log(`${value} が存在しました`);
        console.log('処理を終了します');
        // 条件を満たしたらループを終了
        break;
    }
}
実行結果
30 が存在しました
処理を終了します

4.参考

for...of
for...in
for...inとfor...ofの違い

5.その他

実行環境

Discussion

junerjuner

for...ofの変数部分には、constやlet を使用した有効な変数宣言が必要です。

仕様見た感じ var も許容されていますね。

for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]

https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#prod-M1zjKbr6