JavaScript for ofについて

公開日
2023-06-14
投稿者
Ryosuke Kamei
#tag

JavaScript for ofについて

JavaScriptのfor...ofステートメントは、反復可能なオブジェクト(配列、Map、Set、String、TypedArray、引数オブジェクトなど)上を反復するために使用されます。

以下に基本的な使用法を示します:


let array = [10, 20, 30];

for(let value of array) {
  console.log(value);
}

上記のコードは、配列arrayの各要素をコンソールに出力します。その結果は以下のようになります:


10
20
30

for...ofは配列のインデックスではなく、値そのものにアクセスするのが特徴です。それに対して、for...inループはオブジェクトの列挙可能なプロパティのインデックスに対して反復します。

また、for...ofはカスタム反復子もサポートしています。これにより、任意のオブジェクトに対してfor...ofループを使用することが可能になります。

例えば、次のようにカスタム反復子を実装することができます:


let iterable = {
  [Symbol.iterator]() {
    let step = 0;
    let iterator = {
      next() {
        if (step <= 2) {
          step++;
        }
        switch (step) {
          case 1:
            return { value: 'step 1', done: false };
          case 2:
            return { value: 'step 2', done: false };
          default:
            return { value: undefined, done: true };
        }
      }
    };
    return iterator;
  }
};

for (let value of iterable) {
  console.log(value); // 'step 1', 'step 2'
}

この例では、Symbol.iteratorを使用して反復子をカスタマイズし、その反復子をfor...ofループで反復しています。