์ค๋์ ์๋ฐ์คํธ๋ฆฝํธ์ ๋ฐ๋ณต๋ฌธ ์ค ํ๋์ธ for...of ๋ช ๋ น๋ฌธ์ ๋ํด ๊ณต๋ถํด๋ณด์.
for...of ๋ช ๋ น๋ฌธ์ ๋ฐ๋ณต๊ฐ๋ฅํ ๊ฐ์ฒด(์๋ฅผ ๋ค์ด Array, TypedArray, Set, Map...)์ ๋ํด์ ๋ฐ๋ณตํ๊ณ ๊ฐ ๊ฐ๋ณ ์์ฑ๊ฐ์ ๋ํด ์คํ๋๋ ๋ฌธ์ด ์๋ ์ฌ์ฉ์ ์ ์ ๋ฐ๋ณต ํํฌ๋ฅผ ํธ์ถํ๋ ๋ฃจํ๋ฅผ ์์ฑํ๋ค.
๊ตฌ๋ฌธ
for (variable of iterable) {
statement;
}
variable
๊ฐ ๋ฐ๋ณต์ ์๋ก ๋ค๋ฅธ ์์ฑ๊ฐ์ด variable์ ํ ๋น๋๋ค.
iterable
๋ฐ๋ณต๋๋ ์ด๊ฑฐ๊ฐ๋ฅ(enumerable)ํ ์์ฑ์ด ์๋ ๊ฐ์ฒด.
์์
let iterable = [10, 20, 30];
for (let value of iterable) { // let ๋์ const ์ฌ์ฉ๋ ๊ฐ๋ฅ
console.log(value);
}
// 10
// 20
// 30
/* String์ ๋ํด ๋ฐ๋ณต */
let iterable = "boo";
for (let value of iterable) {
console.log(value);
}
// "b"
// "o"
// "o"
/* map์ ๋ํด ๋ฐ๋ณต */
let iterable = new Map([
["a", 1],
["b", 2],
["c", 3],
]);
for (let entry of iterable) {
console.log(entry);
}
// [a, 1]
// [b, 2]
// [c, 3]
for (let [key, value] of iterable) {
console.log(value);
}
// 1
// 2
// 3
/* set์ ๋ํด ๋ฐ๋ณต */
let iterable = new Set([1, 1, 2, 2, 3, 3]);
for (let value of iterable) {
console.log(value);
}
// 1
// 2
// 3
for...of ์ for...in ์ ์ฐจ์ด
for...in ๋ฃจํ๋ ๊ฐ์ฒด์ ๋ชจ๋ ์ด๊ฑฐ๊ฐ๋ฅํ ์์ฑ์ ๋ํด ๋ฐ๋ณตํ์ง๋ง
for...of ๊ตฌ๋ฌธ์ ์ปฌ๋ ์
์ ์ฉ์ด๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ณด๋ค๋, [Symbol.iterator] ์์ฑ์ด ์๋ ๋ชจ๋ ์ปฌ๋ ์
์์์ ๋ํด ๋ฐ๋ณตํ๋ค.
๋ค์ ์๋ for...of ๋ฃจํ์ for...in ๋ฃจํ์ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค.
Object.prototype.objCustom = function () {};
Array.prototype.arrCustom = function () {};
let iterable = [3, 5, 7];
iterable.foo = "hello";
for (let i in iterable) {
console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}
for (let i of iterable) {
console.log(i); // logs 3, 5, 7
}
์ฐธ๊ณ
'Frontend ๐ > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ๋ (0) | 2024.07.06 |
---|---|
[JS] parseInt() ์ฌ์ฉ ๋ฐฉ๋ฒ (0) | 2023.11.30 |
[JS] Constructor(์์ฑ์)๋? (0) | 2023.11.28 |