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
속성의 초기 값과 동일한 함수 객체입니다.
시도해 보기
const set1 = new Set(); set1.add(42); set1.add("forty two"); const iterator1 = set1[Symbol.iterator](); console.log(iterator1.next().value); // Expected output: 42 console.log(iterator1.next().value); // Expected output: "forty two"
구문
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® 2026 Language Specification # sec-set.prototype-%symbol.iterator% |