Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Map.prototype[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 septiembre de 2016.
El método[Symbol.iterator]() de las instanciasMap implementa elprotocolo de iteración y permite a los objetosMap ser consumidos por la mayoría de sintaxis que esperan iterables, como lo es, lasintaxis spread y el buclefor...of. Este método regresa unobjeto iterator de map que produce tuplas llave-valor delmap en orden de inserción.
El valor inicial de esta propiedad, es el mismo objeto de función que el valor inicial de la propiedadMap.prototype.entries.
In this article
Pruébalo
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"]Sintaxis
map[Symbol.iterator]()Parámetros
Ningúno.
Valor devuelto
El mismo valor devuelto queMap.prototype.entries(): un nuevoobjeto iterator iterable que produce tuplas llave-valor delmap.
Ejemplo
>Iteración usando el bucle for...of
Note que raramente necesitará llamar este método directamente. La existencia de el método[Symbol.iterator]() hace a los objetosMapiterables, y sintaxis de iteracion como lo és el buclefor...of automáticamente llama a este método para obtener el iterador que se usará para iterar sobre el objeto.
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]: bazManualmente moviendo el iterador
Puedes llamar manualmente el métodonext() del objeto iterator para tener máximo control sobre el proceso de iteración.
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"]Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-map.prototype-%symbol.iterator%> |