88 lines
1.9 KiB
Markdown
88 lines
1.9 KiB
Markdown
|
---
|
||
|
title: For...Of Loop
|
||
|
localeTitle: Para ... de loop
|
||
|
---
|
||
|
La sentencia `for...of` crea un bucle que recorre objetos iterables (incluidos los objetos Array, Map, Set, Arguments, etc.), invocando un enganche de iteración personalizado con sentencias que se ejecutarán para el valor de cada propiedad distinta.
|
||
|
|
||
|
```javascript
|
||
|
for (variable of object) {
|
||
|
statement
|
||
|
}
|
||
|
```
|
||
|
|
||
|
| | Descripción | | ---------- | ------------------------------------- | | variable | En cada iteración se asigna un valor de una propiedad diferente a la variable. | | objeto | Objeto cuyas propiedades enumerables están iteradas. |
|
||
|
|
||
|
## Ejemplos
|
||
|
|
||
|
### Formación
|
||
|
|
||
|
```javascript
|
||
|
let arr = [ "fred", "tom", "bob" ];
|
||
|
|
||
|
for (let i of arr) {
|
||
|
console.log(i);
|
||
|
}
|
||
|
|
||
|
// Output:
|
||
|
// fred
|
||
|
// tom
|
||
|
// bob
|
||
|
```
|
||
|
|
||
|
### Mapa
|
||
|
|
||
|
```javascript
|
||
|
var m = new Map();
|
||
|
m.set(1, "black");
|
||
|
m.set(2, "red");
|
||
|
|
||
|
for (var n of m) {
|
||
|
console.log(n);
|
||
|
}
|
||
|
|
||
|
// Output:
|
||
|
// 1,black
|
||
|
// 2,red
|
||
|
```
|
||
|
|
||
|
### Conjunto
|
||
|
|
||
|
```javascript
|
||
|
var s = new Set();
|
||
|
s.add(1);
|
||
|
s.add("red");
|
||
|
|
||
|
for (var n of s) {
|
||
|
console.log(n);
|
||
|
}
|
||
|
|
||
|
// Output:
|
||
|
// 1
|
||
|
// red
|
||
|
```
|
||
|
|
||
|
### Objeto de argumentos
|
||
|
|
||
|
```javascript
|
||
|
// your browser must support for..of loop
|
||
|
// and let-scoped variables in for loops
|
||
|
|
||
|
function displayArgumentsObject() {
|
||
|
for (let n of arguments) {
|
||
|
console.log(n);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
displayArgumentsObject(1, 'red');
|
||
|
|
||
|
// Output:
|
||
|
// 1
|
||
|
// red
|
||
|
```
|
||
|
|
||
|
# Otros recursos:
|
||
|
|
||
|
* [Enlace MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for…of)
|
||
|
* [Enlace MSDN](https://msdn.microsoft.com/library/dn858238%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
|
||
|
* [argumentos @@ iterador](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/@@iterator)
|