87 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: For...Of Loop
 | 
						|
---
 | 
						|
The `for...of` statement creates a loop iterating over iterable objects (including Array, Map, Set, Arguments object and so on), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
 | 
						|
 | 
						|
```javascript
 | 
						|
    for (variable of object) {
 | 
						|
        statement
 | 
						|
    }
 | 
						|
```
 | 
						|
| | Description |
 | 
						|
|----------|-------------------------------------|
 | 
						|
| variable | On each iteration a value of a different property is assigned to variable. |
 | 
						|
| object | Object whose enumerable properties are iterated. |
 | 
						|
 | 
						|
 | 
						|
## Examples
 | 
						|
 | 
						|
### Array
 | 
						|
```javascript
 | 
						|
    let arr = [ "fred", "tom", "bob" ];
 | 
						|
 | 
						|
    for (let i of arr) {
 | 
						|
        console.log(i);
 | 
						|
    }
 | 
						|
 | 
						|
    // Output:
 | 
						|
    // fred
 | 
						|
    // tom
 | 
						|
    // bob
 | 
						|
```
 | 
						|
 | 
						|
### Map
 | 
						|
```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
 | 
						|
```
 | 
						|
 | 
						|
### Set
 | 
						|
```javascript
 | 
						|
    var s = new Set();
 | 
						|
    s.add(1);
 | 
						|
    s.add("red");
 | 
						|
 | 
						|
    for (var n of s) {
 | 
						|
        console.log(n);
 | 
						|
    }
 | 
						|
 | 
						|
    // Output:
 | 
						|
    // 1
 | 
						|
    // red
 | 
						|
```
 | 
						|
 | 
						|
### Arguments object
 | 
						|
```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
 | 
						|
```
 | 
						|
 | 
						|
# Other Resources:
 | 
						|
 | 
						|
* [MDN link](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of)
 | 
						|
* [MSDN link](https://msdn.microsoft.com/library/dn858238%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
 | 
						|
* [arguments @@iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/@@iterator)
 |