-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[es] Web/JavaScript/Reference/Global_Objects/Map/Symbol.iterator (#23235
- Loading branch information
Showing
1 changed file
with
89 additions
and
0 deletions.
There are no files selected for viewing
89 changes: 89 additions & 0 deletions
89
files/es/web/javascript/reference/global_objects/map/symbol.iterator/index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
--- | ||
title: Map.prototype[Symbol.iterator]() | ||
slug: Web/JavaScript/Reference/Global_Objects/Map/Symbol.iterator | ||
l10n: | ||
sourceCommit: 6fbdb78c1362fae31fbd545f4b2d9c51987a6bca | ||
--- | ||
|
||
{{JSRef}} | ||
|
||
El método **`[Symbol.iterator]()`** de las instancias {{jsxref("Map")}} implementa el [protocolo de iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) y permite a los objetos `Map` ser consumidos por la mayoría de sintaxis que esperan iterables, como lo es, la [sintaxis spread](/es/docs/Web/JavaScript/Reference/Operators/Spread_syntax) y el bucle {{jsxref("Statements/for...of", "for...of")}}. Este método regresa un [objeto iterator de map](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator) 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 {{jsxref("Map.prototype.entries")}}. | ||
|
||
{{EmbedInteractiveExample("pages/js/map-prototype-@@iterator.html")}} | ||
|
||
## Sintaxis | ||
|
||
```js-nolint | ||
map[Symbol.iterator]() | ||
``` | ||
|
||
### Parámetros | ||
|
||
Ningúno. | ||
|
||
### Valor devuelto | ||
|
||
El mismo valor devuelto que {{jsxref("Map.prototype.entries()")}}: un nuevo [objeto iterator iterable](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator) 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](/es/docs/Web/JavaScript/Reference/Iteration_protocols#el_protocolo_iterable), 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 | ||
|
||
{{Specifications}} | ||
|
||
## Compatibilidad con navegadores | ||
|
||
{{Compat}} | ||
|
||
## Véase también | ||
|
||
- {{jsxref("Map")}} | ||
- {{jsxref("Map.prototype.entries()")}} | ||
- {{jsxref("Map.prototype.keys()")}} | ||
- {{jsxref("Map.prototype.values()")}} | ||
- {{jsxref("Symbol.iterator")}} | ||
- [Protocolos de Iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) |