JS (Java Script)

이러터블 객체와 유사배열 (iterable) (array-like)

GABOJOK 2023. 9. 6. 20:26

?? 이터러블 객체???

iterable, 이터러블, 반복 가능한

배열, 문자열이 가장 광범위 하게 쓰이는 내장 이터러블 .

이터러블 이라는 개념을 사용하면 어떤 객체에든 for..of 반복문을 적용할 수 있음.

객체를 이터러블 객체로 만들려면 (for..of) 가 동작하도록 하려면, Symbol.iterator를 사용해서 이터러블 객체로 만들 수 있다. 

유사배열(array - like)과 구별하자.

 

??? 유사배열 (array-like) ????

인덱스 , length 이 있어 배열처럼 보임.

유사배열은 배열이 아니며, 이터러블 객체가 아니다. 또한 이터러블 객체는 유사배열이 아니다. 

문자열은 유사배열 이면서 이터러블 객체인 대표적인 친구임.

 

 

아래 예시의 객체는 유사 배열 객체이긴 하지만 이터러블 객체가 아닙니다.

let arrayLike = { // 인덱스와 length프로퍼티가 있음 => 유사 배열
  0: "Hello",
  1: "World",
  length: 2
};

// Symbol.iterator가 없으므로 에러 발생
for (let item of arrayLike) {}