반응형 이터레이터3 제너레이터와 이터레이터 1) 제너레이터와 이터레이터 제너레이터 : 이터레이터이자 이터러블을 생성하는 함수, well-formed iterator를 리턴하는 함수 어떠한 값들을 제너레이터를 통해서 이터러블로 만들고, for.. of 문을 통해 순회를 할 수 있게 만들 수 있다는 것! function *gen() { yield 1; yield 2; yield 3; } let iter = gen(); console.log(iter[Symbol.iterator]() == iter); // true 반환 예제 10까지의 홀수만 뽑아내는 제너레이터 함수 function *odds(l) { for(let i = 0; i < l; i++) { if (i % 2) yield i; } } let iter2 = odds(10); console.l.. 2021. 11. 24. ES6에서의 순회와 이터러블:이터레이터 프로토콜(2) 1) 사용자 정의 이터러블, 이터러블/이터레이터 프로토콜 정의 // 사용자 정의 이터러블 const iterable = { [Symbol.iterator]() { let i = 3; return { next() { return i == 0 ? { done: true } : { value: i--, done: false }; }, [Symbol.iterator]() { return this; } } } }; let iterator = iterable[Symbol.iterator](); // console.log(iterator.next()); // console.log(iterator.next()); // console.log(iterator.next()); // console.log(iterator.ne.. 2021. 11. 4. ES6에서의 순회와 이터러블:이터레이터 프로토콜(1) 1) ES5 vs ES6 리스트 순회 비교 ES5에서의 리스트 순회 const list = [1, 2, 3]; for (var i = 0; i < list.length; i++) { console.log(list[i]); } const str = 'abc'; for (var i = 0; i < str.length; i++) { console.log(str[i]); } ES6에서의 리스트 순회 for (const a of list) { console.log(a); } for (const a of str) { console.log(a); } ES6에서 확실히 간결해진게 눈에 보인다. 2) 이터러블/이터레이터 프로토콜 (Array, Set, Map) // Array const arr = [1, 2, 3]; f.. 2021. 11. 3. 이전 1 다음 반응형