👋 Map과 이터레이터 오브젝트 - entries(), keys(), values(), Symbol.iterator()
1. entries()
-
Map 인스턴스로 이터레이터 오브젝트 생성, 반환
- Map 인스턴스에 설정된 순서로 반환
next()
로[key, value]
반환
const obj = new Map([ ['one', 100], ['two', 200], ]); const iter = obj.entries(); console.log(iter.next()); // {value: [one, 100], done: false} console.log(iter.next()); // {value: [one, 200], done: false} console.log(iter.next()); // {value: undefined, done: true}
2. keys()
-
Map 인스턴스의 key로 이터레이터 오브젝트 생성, 반환
- value는 포함하지 않음
- Map 인스턴스에 설정된 순서로 반환
-
next()
로 key 반환const obj = new Map([ ['one', 100], ['two', 200], ]); const iter = obj.keys(); console.log(iter.next()); // {value: one, done: false} console.log(iter.next()); // {value: two, done: false} console.log(iter.next()); // {value: undefined, done: true}
3. values()
-
Map 인스턴스의 value로 이터레이터 오브젝트 생성, 반환
- key는 포함하지 않음
- Map 인스턴스에 설정된 순서로 반환
-
next()
로 value 반환const obj = new Map([ ['one', 100], ['two', 200], ]); const iter = obj.values(); console.log(iter.next()); // {value: 100, done: false} console.log(iter.next()); // {value: 200, done: false} console.log(iter.next()); // {value: undefined, done: true}
4. Symbol.iterator()
-
Map 인스턴스로 이터레이터 오브젝트 생성, 반환
Map.prototype.entries()
와 같음next()
로[key, value]
반환
const obj = new Map([ ['one', 100], ['two', 200], ]); const iter = obj[Symbol.iterator](); console.log(iter.next()); // {value: [one, 100], done: false} console.log(iter.next()); // {value: [one, 200], done: false} console.log(iter.next()); // {value: undefined, done: true}