็„ก์ œ

Array Iteration (๋ฐฐ์—ด ๋ฐ˜๋ณต) ๋ณธ๋ฌธ

<script>

Array Iteration (๋ฐฐ์—ด ๋ฐ˜๋ณต)

yo-u-loo 2026. 5. 28. 15:35

 

๐ŸŸจ Array Iteration

๋ฐฐ์—ด(Array)์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์–ด ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต ๋ฐฉ์‹์ด๋‹ค.

 

๐ŸŸฃ for ๋ฌธ (์ „ํ†ต ๋ฐฉ์‹)

์ธ๋ฑ์Šค๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•.

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}
  • ํŠน์ง•: ์ธ๋ฑ์Šค(i)๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์žฅ์ : break, continue ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ตฌ์กฐ:
    • arr.length: ๋ฐฐ์—ด์˜ ์ „์ฒด ๊ธธ์ด(์š”์†Œ ๊ฐœ์ˆ˜)๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • arr[i]: ํ˜„์žฌ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
    • i++: ๋‹ค์Œ ์š”์†Œ๋กœ ์ด๋™ํ•œ๋‹ค.

๐Ÿ‘‰ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ง์ ‘ ์ˆซ์ž๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  length๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด๋„ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

๐ŸŸฃ for...of ๋ฌธ (๊ฐ€์žฅ ๊น”๋”ํ•œ ๋ฐ˜๋ณต๋ฌธ)

๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ง์ ‘ ๊บผ๋‚ด์„œ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ์‹.

for (const item of arr) {
  console.log(item);
}
  • ํŠน์ง•: ์ธ๋ฑ์Šค(i)๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ  ๊ฐ’ ์ž์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•˜๋‹ค.
  • ์žฅ์ : break, continue, return ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐ŸŸฃ forEach()

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ง€์ •ํ•œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š”, ๋ฐฐ์—ด ์ „์šฉ ๋ฐ˜๋ณต ๋ฉ”์„œ๋“œ.

arr.forEach((item, index) => {
  console.log(item, index);
});
  • ํŠน์ง•: ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ˆœํšŒํ•œ๋‹ค.
  • ๊ตฌ์„ฑ: ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฒซ ๋ฒˆ์งธ๋Š” ๊ฐ’(item), ๋‘ ๋ฒˆ์งธ๋Š” ์ธ๋ฑ์Šค(i)๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์ฃผ์˜: break, continue๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ํ•ญ์ƒ ๋๊นŒ์ง€ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฏ€๋กœ ์ค‘๊ฐ„์— ๋ฉˆ์ถœ ์ˆ˜ ์—†๋‹ค.

 

 

๐Ÿ“ POINT ๐Ÿ“

โœ”๏ธ ๋‹จ์ˆœํžˆ ๋ฐฐ์—ด ๊ฐ’์„ ์ฝ์„ ๋•Œ๋Š” for...of๊ฐ€ ๊ฐ€์žฅ ๊น”๋”ํ•˜๋‹ค. โœ”๏ธ

โœ”๏ธ ๊ฐ’ + ์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉด forEach๊ฐ€ ์œ ์šฉํ•˜๋‹ค. โœ”๏ธ

โœ”๏ธ ํ˜„๋Œ€ JS์—์„œ๋Š” for...of, forEach๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธ

 

 

๐Ÿ“‹ ์ „ํ†ต์  for vs for...of vs forEach ๐Ÿ“‹

๊ตฌ๋ถ„ ์ผ๋ฐ˜ for for...of forEach
๊ฐ€๋…์„ฑ ๋‚ฎ์Œ ๋†’์Œ ๋†’์Œ
์ธ๋ฑ์Šค ์ ‘๊ทผ ์ง์ ‘ ๊ด€๋ฆฌ ์–ด๋ ค์›€ ์‰ฌ์›€
์ค‘๋‹จ ๊ฐ€๋Šฅ์„ฑ ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
์‚ฌ์šฉ ๋Œ€์ƒ ๋ชจ๋“  ๋ฐ˜๋ณต ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด ๋ฐฐ์—ด

 


 

โš™๏ธ ์‹ค์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

const scores = [85, 42, 98, 60, 77];
const passingScores = [];

// ์ ์ˆ˜ ๋ชฉ๋ก์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์–ด ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.
for (const score of scores) {
    if (score >= 70) {
        passingScores.push(score);
    }
}

console.log("ํ•ฉ๊ฒฉ์ž ์ ์ˆ˜ ๋ชฉ๋ก:", passingScores); // [85, 98, 77]

// forEach๋ฅผ ์‚ฌ์šฉํ•œ ํ•ฉ๊ณ„ ๊ณ„์‚ฐ
let total = 0;
scores.forEach(s => total += s);
console.log("ํ‰๊ท  ์ ์ˆ˜:", total / scores.length);