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