diff --git a/5.5Iterables/t.js b/5.5Iterables/t.js new file mode 100644 index 0000000..9c8608f --- /dev/null +++ b/5.5Iterables/t.js @@ -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);