pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator

per.mozilla.org/favicon.ico" />

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Symbol.iterator

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.

Symbol.iterator は静的データプロパティで、ウェルノウンシンボルSymbol.iterator を表します。反復可能プロトコルは、オブジェクトのイテレーターを返すメソッドを、このシンボルで探します。オブジェクトが反復可能であるためには、[Symbol.iterator] キーを持っていなければなりません。

試してみましょう

const iterable = {};

iterable[Symbol.iterator] = function* () {
  yield 1;
  yield 2;
  yield 3;
};

console.log([...iterable]);
// 予想される結果: Array [1, 2, 3]

ウェルノウンシンボル Symbol.iterator です。

Symbol.iterator のプロパティ属性
書込可能不可
列挙可能不可
設定可能不可

解説

オブジェクトを反復処理する必要がある場合(for..of ループの開始時など)は、その [Symbol.iterator]() メソッドが引数なしで呼び出され、返されたイテレーターを使用して反復処理される値が取得されます。

一部の組み込み型には既定の反復動作がありますが、他の型(Object など)にはありません。[Symbol.iterator]() メソッドの組み込み型は次のとおりです。

詳細については、反復処理プロトコルも参照してください。

ユーザー定義の反復可能オブジェクト

次のように独自の反復可能オブジェクトを作成できます。

js
const myIterable = {};
myIterable[Symbol.iterator] = function* () {
  yield 1;
  yield 2;
  yield 3;
};
[...myIterable]; // [1, 2, 3]

または、計算プロパティを使用して、クラスやオブジェクト内で反復可能オブジェクトを直接定義できます。

js
class Foo {
  *[Symbol.iterator]() {
    yield 1;
    yield 2;
    yield 3;
  }
}

const someObj = {
  *[Symbol.iterator]() {
    yield "a";
    yield "b";
  },
};

console.log(...new Foo()); // 1, 2, 3
console.log(...someObj); // 'a', 'b'

非整形反復処理

もし反復可能項目の [Symbol.iterator]() メソッドがイテレーターオブジェクトを返さない場合、それは非整形反復可能項目です。それを使用すると、実行時に例外が発生したり、バグが発生したりする可能性があります。

js
const nonWellFormedIterable = {};
nonWellFormedIterable[Symbol.iterator] = () => 1;
[...nonWellFormedIterable]; // TypeError: [Symbol.iterator]() returned a non-object value

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-symbol.iterator

ブラウザーの互換性

関連情報

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy