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%

브라우저 호환성

같이 보기