👋 Set과 이터레이터 오브젝트 - entries(), keys(), values(), Symbol.iterator()
1. entries()
-
Set
인스턴스로 이터레이터 오브젝트 생성, 반환Set
인스턴스에 설정된 순서로 반환next()
로[value, value]
반환
const obj = new Set(['one', () => {}]); const iterObj = obj.entries(); console.log(iterObj.next()); // {value: [one, one], done: false} console.log(iterObj.next()); // {value: [() => {}, () => {}], done: false} console.log(iterObj.next()); // {value: undefined, done: true}
2. keys()
-
value
가key
가 되므로keys()
는 의미가 없음Map
오브젝트와 맞추기 위한 것
-
Set
인스턴스의value
를 key로 사용하여 이터레이터 오브젝트 생성, 반환Set
인스턴스에 설정된 순서로 반환
-
next()
로value(key)
반환const obj = new Set(['one', () => {}]); const iterObj = obj.keys(); console.log(iterObj.next()); // {value: one, done: false} console.log(iterObj.next()); // {value: () => {}, done: false} console.log(iterObj.next()); // {value: undefined, done: true}
3.values()
-
Set
인스턴스의value
로 이터레이터 오브젝트 생성, 반환Set
인스턴스에 설정된 순서로 반환
-
next()
로value
반환const obj = new Set(['one', () => {}]); const iterObj = obj.values(); console.log(iterObj.next()); // {value: one, done: false} console.log(iterObj.next()); // {value: () => {}, done: false} console.log(iterObj.next()); // {value: undefined, done: true}
4. Symbol.iterator()
-
Set
인스턴스로 이터레이터 오브제트 생성, 반환Set.prototype.values()
와 같음next()
로value
반환
const obj = new Set(['one', () => {}]); const iterObj = obj[Symbol.iterator](); console.log(iterObj.next()); // {value: one, done: false} console.log(iterObj.next()); // {value: () => {}, done: false} console.log(iterObj.next()); // {value: undefined, done: true}