Iterator.prototype

編集

Iterator.prototype は、JavaScript言語における反復可能なオブジェクトのプロトタイプインターフェースを定義します。

概要

編集

Iterator(イテレータ)は、JavaScriptにおけるコレクションやデータストリームを順次処理するための標準的な方法を提供するオブジェクトです。

プロトタイプメソッド

編集

next()

編集

イテレータの次の値を取得するための基本的なメソッドです。

戻り値
オブジェクト { value: any, done: boolean }
value: 現在の要素の値
done: イテレーションが完了したかどうかを示すブール値

使用例

編集
// 配列からイテレータを取得
const iterator = ['a', 'b', 'c'].values();

console.log(iterator.next()); // { value: 'a', done: false }
console.log(iterator.next()); // { value: 'b', done: false }
console.log(iterator.next()); // { value: 'c', done: false }
console.log(iterator.next()); // { value: undefined, done: true }

return()

編集

イテレーションを早期に終了し、最終値を返すメソッドです。

パラメータ
value (オプション): 返される値

使用例

編集
const iterator = [1, 2, 3].values();

console.log(iterator.return()); // { value: undefined, done: true }

throw()

編集

イテレータ内でエラーを発生させるメソッドです。

パラメータ
error: 発生させる例外オブジェクト

使用例

編集
function* generatorFunction() {
    try {
        yield 1;
        yield 2;
    } catch (e) {
        console.log('エラーをキャッチ:', e);
    }
}

const iterator = generatorFunction();
iterator.next(); // { value: 1, done: false }
iterator.throw(new Error('カスタムエラー')); // エラーをキャッチ: Error: カスタムエラー

生成方法

編集

Iteratorは直接生成せず、以下の方法で作成されます:

コレクションメソッド

編集

ジェネレータ関数

編集
function* numberGenerator() {
    yield 1;
    yield 2;
    yield 3;
}

const iterator = numberGenerator();

反復可能プロトコル

編集

Iteratorは、Symbol.iterator メソッドを実装することで、for...ofループや分割代入など、JavaScriptの反復処理機能と連携できます。

ブラウザサポート

編集

モダンなブラウザと最新のJavaScriptエンジンで広くサポートされています。古いブラウザでは、トランスパイラやポリフィルが必要な場合があります。

メソッド

編集

Iterator.prototype.constructor

編集

Iterator.prototype.drop

編集

Iterator.prototype.every

編集

Iterator.prototype.filter

編集

Iterator.prototype.find

編集

Iterator.prototype.flatMap

編集

Iterator.prototype.forEach

編集

Iterator.prototype.map

編集

Iterator.prototype.reduce

編集

Iterator.prototype.some

編集

Iterator.prototype.take

編集

Iterator.prototype.toArray

編集

関連概念

編集

注意点

編集
  • Iteratorは一方向で、巻き戻しができません
  • 一度すべての要素を取得すると、再度イテレーションできません