Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

Map.prototype[Symbol.iterator]()

BaselineWidely available

[Symbol.iterator]()Map オブジェクトのメソッドで、反復可能プロトコルを実装します。これにより、Map オブジェクトが反復可能プロトコルを受け入れるほとんどの構文、たとえばスプレッド構文for...of ループなどで使用できるようになります。マップのキーと値のペアを挿入順に返すイテレーターオブジェクトを返します。

初期値は、Map.prototype.entries メソッドの初期値と同じ関数オブジェクトです。

試してみましょう

const map1 = new Map();map1.set("0", "foo");map1.set(1, "bar");const iterator1 = map1[Symbol.iterator]();for (const item of iterator1) {  console.log(item);}// Expected output: Array ["0", "foo"]// Expected output: Array [1, "bar"]

構文

js
map[Symbol.iterator]()

引数

なし。

返値

返値はMap.prototype.entries() と同じ、マップのキーと値のペアを生成する新しい反復可能なイテレーターオブジェクトを返します。

for...of を使用した反復処理

このメソッドを直接呼び出す必要があることはめったにないことに注意してください。[Symbol.iterator]() メソッドが存在することでMap オブジェクトを反復可能にし、for...of ループなどの反復処理構文が、自動的にこのメソッドを呼び出してループのためのイテレーターを取得することができます。

js
const myMap = new Map();myMap.set("0", "foo");myMap.set(1, "bar");myMap.set({}, "baz");for (const entry of myMap) {  console.log(entry);}// ["0", "foo"]// [1, "bar"]// [{}, "baz"]for (const [key, value] of myMap) {  console.log(`${key}: ${value}`);}// 0: foo// 1: bar// [Object]: baz

手動でイテレーターを手繰る

返されたイテレーターオブジェクトのnext() メソッドを手動で呼び出すと、反復処理を最大限に制御することができます。

js
const myMap = new Map();myMap.set("0", "foo");myMap.set(1, "bar");myMap.set({}, "baz");const mapIter = myMap[Symbol.iterator]();console.log(mapIter.next().value); // ["0", "foo"]console.log(mapIter.next().value); // [1, "bar"]console.log(mapIter.next().value); // [Object, "baz"]

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-map.prototype-%symbol.iterator%

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp