Iterables:
add a [Symbol.Iterable] to make the object iterable so that the object can use for of loop the [Symbol.Iterable] is a function, it should return a object includesdone and value Array.from method can return Array.from a arraylike object and iterable object string can be used in array.from as well
This commit is contained in:
		
							
								
								
									
										55
									
								
								5.5Iterables/t.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								5.5Iterables/t.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| let range = { | ||||
| 				from: 1, | ||||
| 				to: 5 | ||||
| } | ||||
|  | ||||
| range[Symbol.iterator] = function(){ | ||||
|  | ||||
| 	return { | ||||
| 		current: this.from, | ||||
| 		last: this.to, | ||||
| 		 | ||||
| 		next(){ | ||||
| 			if(this.current <= this.last){ | ||||
| 				return {done: false, value: this.current++}; | ||||
| 			} else { | ||||
| 				return {done: true}; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| for(let num of range){ | ||||
| 	console.log(num); | ||||
| } | ||||
|  | ||||
| for(let ch of "tests"){ | ||||
| 	console.log(ch) | ||||
| } | ||||
|  | ||||
| let arrayLike = { | ||||
| 	0: "Hello", | ||||
| 	1: "World", | ||||
| 	length: 2 | ||||
| }; | ||||
|  | ||||
| // Array.from | ||||
| let arr = Array.from(arrayLike); | ||||
| console.log(arr.pop()); // World | ||||
| arr = Array.from(range); | ||||
| console.log(arr); //1, 2, 3, 4, 5 | ||||
| arr = Array.from(range, num => num * num); | ||||
| console.log(arr); //1, 4, 9, 16, 25 | ||||
|  | ||||
| let s = "split"; | ||||
| let split_s = s.split(''); | ||||
| let arr_s = Array.from(s); | ||||
| console.log(split_s); | ||||
| console.log(split_s[0]); | ||||
| console.log(split_s[1]); | ||||
| console.log(split_s.length); | ||||
| console.log(arr_s); | ||||
| console.log(arr_s[0]); | ||||
| console.log(arr_s[1]); | ||||
| console.log(arr_s.length); | ||||
		Reference in New Issue
	
	Block a user