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"
๊ตฌ๋ฌธ
set[Symbol.iterator]()
๋ฐํ ๊ฐ
Set.prototype.values()
์ ๋์ผํ๊ฒ set์ ๊ฐ์ ์ฐ์ถํ๋ ์๋ก์ด ๋ฐ๋ณต ๊ฐ๋ฅํ ๋ฐ๋ณต์ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
์์
for...of ๋ฃจํ๋ฅผ ์ฌ์ฉํ ๋ฐ๋ณต
์ด ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํ ํ์๋ ๊ฑฐ์ ์์ต๋๋ค. @@iterator
๋ฉ์๋์ ์กด์ฌ๋ Set
๊ฐ์ฒด๊ฐ
๋ฐ๋ณต ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ฉฐ,
for...of
๋ฃจํ์ ๊ฐ์ ๋ฐ๋ณต ๊ตฌ๋ฌธ์ ์ด ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ํธ์ถํ์ฌ ๋ฃจํ๋ฅผ ๋๋ฆด ๋ฐ๋ณต์๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
for (const v of mySet) {
console.log(v);
}
๋ฐ๋ณต์ ์๋์ผ๋ก ๋๋ฆฌ๊ธฐ
๋ฐํ๋ ๋ฐ๋ณต์ ๊ฐ์ฒด์ next()
๋ฉ์๋๋ฅผ ์๋์ผ๋ก ํธ์ถํ์ฌ ๋ฐ๋ณต ํ๋ก์ธ์ค๋ฅผ ์ต๋ํ ์ ์ดํ ์ ์์ต๋๋ค.
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% |
๋ธ๋ผ์ฐ์ ํธํ์ฑ
Loadingโฆ