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)
							 |