← 返回首页
Map.prototype[Symbol.iterator]() - JavaScript | MDN

Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

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 instancias Map implementa el protocolo de iteración y permite a los objetos Map ser consumidos por la mayoría de sintaxis que esperan iterables, como lo es, la sintaxis spread y el bucle for...of. Este método regresa un objeto iterator de map que produce tuplas llave-valor del map en orden de inserción.

El valor inicial de esta propiedad, es el mismo objeto de función que el valor inicial de la propiedad Map.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

js
map[Symbol.iterator]()

Parámetros

Ningúno.

Valor devuelto

El mismo valor devuelto que Map.prototype.entries(): un nuevo objeto iterator iterable que produce tuplas llave-valor del map.

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 objetos Map iterables, y sintaxis de iteracion como lo és el bucle for...of automáticamente llama a este método para obtener el iterador que se usará para iterar sobre el objeto.

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

Manualmente moviendo el iterador

Puedes llamar manualmente el método next() del objeto iterator para tener máximo control sobre el proceso de iteración.

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"]

Especificaciones

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

Compatibilidad con navegadores

Enable JavaScript to view this browser compatibility table.

Véase también