๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/ํ”„๋ ˆ์ž„์›Œํฌ React

๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• (map, for)

1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ map ํ•จ์ˆ˜ 

๊ธฐ๋Šฅ 1. array์— ๋“ค์–ด์žˆ๋Š” ์ž๋ฃŒ๊ฐฏ์ˆ˜๋งŒํผ ๊ทธ ์•ˆ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

var ์–ด๋ ˆ์ด = [2,3,4];
์–ด๋ ˆ์ด.map(function(){
  console.log(1)
});

=> console.log(1) 3๋ฒˆ ์‹คํ–‰๋จ 

 

 

๊ธฐ๋Šฅ 2. ์ฝœ๋ฐฑํ•จ์ˆ˜์— ํŒŒ๋ผ๋ฏธํ„ฐ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ž‘๋ช…ํ•˜๋ฉด ๊ทธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋ ˆ์ด ์•ˆ์— ์žˆ๋˜ ๋ชจ๋“  ์ž๋ฃŒ๋ฅผ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

(๊ทธ๋ƒฅ ์†Œ๊ด„ํ˜ธ์•ˆ์— ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค)

var ์–ด๋ ˆ์ด = [2,3,4];
์–ด๋ ˆ์ด.map(function(a){
  console.log(a)
});

=> 2, 3, 4๊ฐ€ ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅ๋จ 

 

 

๊ธฐ๋Šฅ3. return ์˜ค๋ฅธ์ชฝ์— ๋ญ ์ ์œผ๋ฉด array๋กœ ๋‹ด์•„์ค๋‹ˆ๋‹ค. 

var ์–ด๋ ˆ์ด = [2,3,4];
var newArray = ์–ด๋ ˆ์ด.map(function(a){
  return a * 10
});
console.log(newArray)

=> newArray๋Š” [20, 30, 40] ์ด ์ถœ๋ ฅ๋จ 

 

 

2. JSX ์•ˆ์—์„œ html์„ ๋ฐ˜๋ณต์ƒ์„ฑํ•˜๋ ค๋ฉด

๋ฆฌ์•กํŠธ ์ค‘๊ด„ํ˜ธ์•ˆ์—์„œ html์„ ๋ฐ˜๋ณต์ƒ์„ฑํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๊นŒ ๋ฐฐ์šด map์„ ์ด์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. 

function App (){
  return (
    <div>
      { 
        [1,2,3].map(function(){
          return ( <div>์•ˆ๋…•</div> )
        }) 
      }
    </div>
  )
}

โ–ฒ ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด <div>์•ˆ๋…•</div> ์ด 3๊ฐœ ์ƒ์„ฑ๋จ

 

ex. ๋ฐ˜๋ณต๋˜๋Š” ๊ธ€์ œ๋ชฉ 3๊ฐœ๋„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ถ•์•ฝ

function App (){
  return (
    <div>
      (์ƒ๋žต)
      { 
        ๊ธ€์ œ๋ชฉ.map(function(){
          return (
          <div className="list">
            <h4>{ ๊ธ€์ œ๋ชฉ[0] }</h4>
            <p>2์›” 18์ผ ๋ฐœํ–‰</p>
          </div> )
        }) 
      }
    </div>
  )
}

โ–ฒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธ€์ œ๋ชฉ์ด 3๊ฐœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. (๊ธ€์ œ๋ชฉ์ด๋ผ๋Š” state๋„ array์ž๋ฃŒ๋ผ์„œ map ๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)

 

๋ฐ˜๋ณต๋œ HTML์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ œ๋ชฉ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(1)

function App (){
  return (
    <div>
      (์ƒ๋žต)
      { 
        ๊ธ€์ œ๋ชฉ.map(function(a){
          return (
          <div className="list">
            <h4>{ a }</h4>
            <p>2์›” 18์ผ ๋ฐœํ–‰</p>
          </div> )
        }) 
      }
    </div>
  )
}

โ–ฒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ๊ฐ ๋‹ค๋ฅธ ๊ธ€์ œ๋ชฉ์ด 3๊ฐœ ์ƒ์„ฑ๋จ

 

๋ฐ˜๋ณต๋œ HTML์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ œ๋ชฉ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(2)

function App (){
  return (
    <div>
      (์ƒ๋žต)
      { 
        ๊ธ€์ œ๋ชฉ.map(function(a, i){
          return (
          <div className="list">
            <h4>{ ๊ธ€์ œ๋ชฉ[i] }</h4>
            <p>2์›” 18์ผ ๋ฐœํ–‰</p>
          </div> )
        }) 
      }
    </div>
  )
}

 

 

(์ฐธ๊ณ ) ์ผ๋ฐ˜ for ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๊ณ ์‹ถ๋‹ค๋ฉด

1. html๋“ค์„ ๋‹ด์•„๋‘˜ array ์ž๋ฃŒ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

2. ์ผ๋ฐ˜ for ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆผ 

3. ๋ฐ˜๋ณต๋  ๋•Œ ๋งˆ๋‹ค array์ž๋ฃŒ์— <div> ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. 

4. ์›ํ•˜๋Š” ๊ณณ์—์„œ {array์ž๋ฃŒ} ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

function App (){
  
  var ์–ด๋ ˆ์ด = [];
  for (var i = 0; i < 3; i++) {
    ์–ด๋ ˆ์ด.push(<div>์•ˆ๋…•</div>)
  }
  return (
    <div>
      { ์–ด๋ ˆ์ด }
    </div>
  )
}

โ–ฒ ์ด๋ ‡๊ฒŒ ํ•ด๋„ <div>์•ˆ๋…•</div> ์ด๊ฒŒ 3๊ฐœ ์ถœ๋ ฅ๋จ.

for ๋ฌธ๋ฒ•์€ JSX ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์„œ ์ €๋ ‡๊ฒŒ ๋ฐ”๊นฅ์—์„œ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.  ๊ท€์ฐฎ์œผ๋ฉด map์„ ์”์‹œ๋‹ค.