๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒŒ | WEB DEV/Vanilla JS

JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (20)_ for ๋ฃจํ”„+

by KASSID 2023. 3. 8.

๋ชฉ์ฐจ

    728x90

    2022.02.11 - [๐ŸŒŒ | WEB DEV/Vanilla JS] - JS_๊ธฐ๋ณธ๋ฌธ๋ฒ• (4)_๋ฐ˜๋ณต๋ฌธ

     

    ๋ฐ˜๋ณต๋ฌธ ์ค‘ for ๋ฌธ์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ๋” ์•Œ์•„๋ณด์ž

     

    ๊ตฌ์กฐ

    for ([initialization]; [condition]; [final-expression]){
      ...
    }

    ๊ด„ํ˜ธ ์•ˆ 3๊ฐœ์˜ ์‹

    initialization

    ์‹ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ฃผ๋กœ ์นด์šดํ„ฐ์— ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

    (์ƒ์ˆ˜ ์„ ์–ธ ์‹œ ์ฆ๊ฐ ๋ถˆ๊ฐ€)

     

    condition

    ๋งค ๋ฐ˜๋ณต ๋งˆ๋‹ค ํ‰๊ฐ€ํ•  ์กฐ๊ฑด์„ ์„ธ์šด๋‹ค.

    ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.

    ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ for๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.

    ๋งŒ์•ฝ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ์ฐธ์ด๋‹ค.

     

    final-expression

    ๋งค ๋ฐ˜๋ณต์˜ ๋์— ์ˆ˜ํ–‰๋˜๋Š” ์‹์ด๋‹ค. ์ฃผ๋กœ ์นด์šดํ„ฐ ๋ณ€์ˆ˜์˜ ์ฆ๊ฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

    (condition ์ด์ „์— ์‹คํ–‰)

    ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ ๋ณ€ํ™”X

     


    ํ™œ์šฉ

     

    ๊ธฐ์ดˆ์ ์ธ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    for (let i = 0; i < 5; i++){
    	console.log(i);
    }
    
    >>> 0
    >>> 1
    >>> 2
    >>> 3
    >>> 4

     

    ์ค‘์ฒฉ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

    for (let i = 0; i < 2; i++) {
      for (let j = 3; j >= 0; j--) {
        console.log(`${i} | ${j}`);
      }
    }
    
    >>> 0 | 3
    >>> 0 | 2
    >>> 0 | 1
    >>> 0 | 0
    >>> 1 | 3
    >>> 1 | 2
    >>> 1 | 1
    >>> 1 | 0

     

    ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜ ํ™œ์šฉ

    ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•  ๋•Œ๋Š” ์ฝค๋งˆ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

     

    ์˜ˆ์‹œ 1)

    for (let x = 0, y = 10; x <= y; x++, y--) { //์ฝค๋งˆ๋ฅผ ํ™œ์šฉ
      console.log(x, y);
    }

     

    ์˜ˆ์‹œ 2)

    for (
      let flip = true, x = 3, y = 3;
      x >= 0 && y >= 0;
      flip = !flip, flip ? x-- : y--
    ) {
      console.log(x, y);
    }
    
    >>> 3 3
    >>> 3 2
    >>> 2 2
    >>> 2 1
    >>> 1 1
    >>> 1 0
    >>> 0 0

     

     

    ๋ฌดํ•œ๋ฃจํ”„

    ๋ฌดํ•œ๋ฃจํ”„๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋ฉˆ์ถ”๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ์ฃผ์˜ํ•ด์•ผํ•˜๋Š” ์˜ค๋ฅ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค!

    for (;;){
      ...
    }

     

     

     


    ๊ฐ์ฒด, ๋ฐฐ์—ด๊ณผ for๋ฌธ

    for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด, ๋ฐฐ์—ด ๋“ฑ์—์„œ ํ•ญ๋ชฉ์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์œ„์˜ ์ผ๋ฐ˜์ ์ธ for๋ฌธ๊ณผ ๋‹ค๋ฅธ ์ ์€

    ๋ณดํ†ต ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค๋Š” ์ ์ด๋‹ค! (๋ณ€ํ•  ๊ฐ’์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ)

     

     

    1. ๊ฐ์ฒด์™€ for๋ฌธ

    ๊ฐ์ฒด์˜ ํ‚ค๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    ๊ตฌ์กฐ

    for (const ๋ณ€์ˆ˜(ํ‚ค) in ๊ฐ์ฒด){ //๊ฐ ๋ฐ˜๋ณต๋งˆ๋‹ค ์„ ์–ธ & ๋ณ€ํ•  ๊ฐ’์ด ์•„๋‹ˆ๋ฏ€๋กœ const
      ...
    }

     

    ์˜ˆ์‹œ 1)

    const profile1 = {
      name : 'Rooney',
      backNum : 10,
      position : 'FW',
    };
    
    for (const key in profile1){
      console.log(key, profile1[key]);
    }
    
    >>> name Rooney
    >>> backNum 10
    >>> position FW

     

    ์˜ˆ์‹œ 2)

    ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    (์š”์†Œ ์ถ”์ถœ์ด ์•„๋‹Œ ์ธ๋ฑ์Šค ์ถ”์ถœ!)

    const list = [1, 2, 3, 4];
    
    for (const item in list) {
      console.log(item);
    }
    
    >>> 0
    >>> 1
    >>> 2
    >>> 3

     

     

    2. ๋ฐฐ์—ด๊ณผ for๋ฌธ

    ๋ฐฐ์—ด, ์ •ํ™•ํžˆ๋Š” iterable์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    ๊ตฌ์กฐ

    for (const ๋ณ€์ˆ˜(์š”์†Œ) of ๋ฐฐ์—ด){ //๋ฐฐ์—ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ iterable์€ ๋ชจ๋‘ ๊ฐ€๋Šฅ
      ...
    }

     

    ์˜ˆ์‹œ 1)

    const list = [1, 2, 3, 4];
    
    for (const item of list) {
      console.log(item);
    }
    
    >>> 1
    >>> 2
    >>> 3
    >>> 4

     

    ์˜ˆ์‹œ 2)

    ๋ฌธ์ž์—ด๋„ iterable์ด๊ธฐ ๋•Œ๋ฌธ์— ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

    const meg = 'Hello';
    
    for (const item of meg) {
      console.log(item);
    }
    
    >>> H
    >>> e
    >>> l
    >>> l
    >>> o

     

    ๋ฐฐ์—ด์— of๋ฅผ ์ด์šฉํ•˜์˜€์„ ๋•Œ ์žฅ์ 

    ์ผ๋ฐ˜์ ์ธ for๋ฌธ์˜ ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—

    ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ์„œ ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

    ex) ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค overflow

     

    ๊ทธ์— ๋ฐ˜ํ•ด of์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์—์„œ ์ง์ ‘ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—

    ์กฐ๊ธˆ ๋” ์•ˆ์ „ํ•œ ๊ตฌ์กฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    ๋Œ“๊ธ€