This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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 โจ2015๋…„ 9์›”โฉ.

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%

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ