iterable : 반복가능한
영어 뜻에서 느낌이 오듯이 iterable object는 반복 가능한 객체를 뜻한다.
ES6에 새롭게 추가 된 개념이다.
Symbol.iterator 속성에 특정함수가 들어가 있다면, iterable 하다 혹은 iterable Object라고 부른다.
iterable한 생성자는 대표적으로 이러하다.
이런 객체를 iterator protocol을 따른다고 한다.
이터러블을 for...of, 전개연산자등과 함께 동작하도록한 규약이다.
{value , done}객체를 리턴하는 next()메소드를 이용하여 iterator protocol을 구현한다.
next()를 실행하면 다음 반복자를 호출 할 수 있다.
마지막 요소가 되기 전까지 done: false 이지만, 마지막 요소를 산출한 후 done: true를 반환합니다.
어떤 객체의 key로 사용 가능
이터러블은 순회가 포인트 이다.
이터러블을 다음 기능들로 사용 할 수 있다.
ES6 전에 Array를 순회하는 for문은 다음과 같이 구현했다.
const array = [1,2,3];
for(let i=0;i<array.length;i++){
console.log(array[i]);
}
이제 for ... of 문으로 구현 한다.
const array = [1,2,3];
for(const i of array){
console.log(i);
}
코딩테스트 공부할때, 뭣도 모르고 막쓴(?) 유용한 순회 방법이다.
예를들어, 100개의 이름이 a라는 array로 input된다.
console.log(...a);
위 같이 표현을 하면 for문을 사용하지 않아도 순회하며 원하는 값을 출력 할 수 있다.
const arr = [3,5];
console.log(...arr); // 3 5
배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게하는 JS표현식 이다.
const odd = [1,3,5,7,9];
const [a,b,...rest] = odd;
console.log(a); // 1
console.log(b); // 3
console.log(rest); // (3)[5,7,9]