프론트엔드/자바스크립트

이터러블

테오구 2022. 4. 4. 19:36
728x90
// Iterable 하다는건! 순회가 가능하다는 것
// [Symbol.iterator](): IterableIterator<T>
// 심볼정의를 가진 객체나, 특정한 함수가 IterableIterator<T>를
// 리턴한다는 것은 순회 가능한 객체다! 라는것을 의미한다.
// 순회가 가능하면 무엇을 할 수 있나?
// 바로 반복문, 연산자들을 사용할 수 있습니다.

const arr = [1, 2, 3]
console.log(arr.values())
console.log(arr.entries())
console.log(arr.keys())

// iterator 사용해 보기
// values는 iterableIterator를 리턴합니다.
const iterator = arr.values()
while (true) {
  const item = iterator.next()
  //   item이 마지막이라면 while문 나갑니다.
  if (item.done) break
  console.log(item.value)
}

// arr의 값을 하나하나씩 item에 할당할 수 있다.
for (let item of arr.values()) {
  console.log(item)
}

// 일반 오브젝트는 iterable한 규격 사항을 준수하지 않습니다.
// 즉 iterable한 함수가 들어있지 않습니다.
// 오브젝트의 키를 가져올 수 있습니다.
const obj = { id: 123, name: 'Ellie' }
for (const item in obj) {
  console.log(item)
}
728x90

'프론트엔드 > 자바스크립트' 카테고리의 다른 글

이터레이션(이터러블)  (0) 2022.04.20
제너레이터  (0) 2022.04.20
Inheritance  (0) 2022.03.31
Getter & Setter  (0) 2022.03.30
논리 연산자  (0) 2021.10.15