Set.prototype[@@iterator]()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Set
객체의 @@iterator
메서드는
Iteration 프로토콜을 구현하며,
전개 구문 및
for...of
루프와 같이
순회를 예상하는 대부분의 구문에서 Set을 사용할 수 있도록 합니다. Set의 값을 산출하는 반복자를 반환합니다.
이 속성의 초기 값은 Set.prototype.values
속성의 초기 값과 동일한 함수 객체입니다.
시도해보기
구문
js
set[Symbol.iterator]()
반환 값
Set.prototype.values()
와 동일하게 set의 값을 산출하는 새로운 반복 가능한 반복자 객체를 반환합니다.
예제
for...of 루프를 사용한 반복
이 메서드를 직접 호출할 필요는 거의 없습니다. @@iterator
메서드의 존재는 Set
객체가
반복 가능하게 해주며,
for...of
루프와 같은 반복 구문은 이 메서드를 자동으로 호출하여 루프를 돌릴 반복자를 얻게 됩니다.
js
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
for (const v of mySet) {
console.log(v);
}
반복자 수동으로 돌리기
반환된 반복자 객체의 next()
메서드를 수동으로 호출하여 반복 프로세스를 최대한 제어할 수 있습니다.
js
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
const setIter = mySet[Symbol.iterator]();
console.log(setIter.next().value); // "0"
console.log(setIter.next().value); // 1
console.log(setIter.next().value); // Object
명세서
Specification |
---|
ECMAScript Language Specification # sec-set.prototype-%symbol.iterator% |
브라우저 호환성
BCD tables only load in the browser