๐Ÿ‘โ€๐Ÿ—จjavascript(for๋ฐ˜๋ณต๋ฌธ, forEach๋ฐ˜๋ณต๋ฌธ, for in๋ฐ˜๋ณต๋ฌธ,arrow function, array ํ•จ์ˆ˜๋“ค)

stayby94ยท2023๋…„ 8์›” 1์ผ

JS๋ฌธ๋ฒ•

๋ชฉ๋ก ๋ณด๊ธฐ
8/15

๋ฐ˜๋ณต๋ฌธ์˜ ์šฉ๋„

  • 1. ์ฝ”๋“œ๋ฐ˜๋ณต

  • 2. array๋‚˜ object์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ๊บผ๋‚ผ ๋•Œ


for ๋ฐ˜๋ณต๋ฌธ!

  • ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๊ณ„์† ๋ฐ˜๋ณต์ด ๋˜๋ฉด for๋ฐ˜๋ณต๋ฌธ์„ ์จ์„œ ๋Œ€์‹  ๋ณต๋ถ™ํ•˜๋ฉด ๋จ.

    • for(๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜){
      ๋ฐ˜๋ณตํ•  ์ฝ”๋“œ};
      ์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์“ฐ๋ฉด๋จ.
  • ๊ทธ๋Ÿฐ๋ฐ ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜์—๋Š” ์ˆซ์ž๋ฅผ ์ ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ

    • (let i=0; i<3; i++) ์™€ ๊ฐ™์ด ์ ๋Š” ๊ฒƒ์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ์Œ.
      • i๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค 1์”ฉ ๋”ํ•˜๊ณ  i๊ฐ€ 3์ด ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด๋‹ฌ๋ผ๋Š” ์˜๋ฏธ
      • (i=0), (i=1), (i=2) โ†’ ๋ฐ˜๋ณต
      • (i=3) โ†’ ๋ฐ˜๋ณต x
  • ์˜ˆ์‹œ)

    for(let i=0; i<3; i++){
    
       $('.tab-button').eq(i).on('click', function(){
       $('.tab-button').removeClass('orange');
       $('.tab-button').eq(i).addClass('orange');
     });
    }
    • tab-content๋ผ๋Š” ํด๋ž˜์Šค ๋ช…์„ ๊ฐ€์ง„ ํƒœ๊ทธ ์ค‘ i๋ฒˆ์งธ์— ํด๋ฆญ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ชจ๋“  tab-contentํด๋ž˜์Šค๋ช…์„ ๊ฐ€์ง„ ํƒœ๊ทธ์— orange๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐ.
    • tab-content์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ํƒœ๊ทธ ์ค‘ i๋ฒˆ์งธ์—๋งŒ orange๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€.

forEach ๋ฐ˜๋ณต๋ฌธ!

  • forEach ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๋ ค๋ฉด ()์•ˆ์— ํ•ญ์ƒ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์“ฐ๋„๋ก ์ •ํ•ด์ ธ ์žˆ์Œ.

    pants.forEach(function(){
    	console.log(123)
    })
    • ์ฝ˜์†” ์ฐฝ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด pants๋ผ๊ณ  ํ•˜๋Š” array์•ˆ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ์ˆ˜๋งŒํผ 123์„ ๋ฐ˜ํ™˜.
  • forEach ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ 2๊ฐœ ์ƒ์„ฑ ๊ฐ€๋Šฅ.

    1. array ์•ˆ์˜ ๋ฐ์ดํ„ฐ
    2. 0๋ถ€ํ„ฐ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ •์ˆ˜
    var pants = [28, 30, 32]  // ์„œ๋ฒ„์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๊ฐ€์ •.
    pants.forEach(function(a, i){
    document.querySelector('.size').innerHTML = `<option>${a}</option>`
    })
    • <option>${a}</option> ์—ฌ๊ธฐ์— 28, 30, 32๊ฐ€ ํ•œ๋ฒˆ์”ฉ ์ฐํžˆ๊ฒŒ ๋จ.
    • ๋งŒ์•ฝ i๋ฅผ ๋„ฃ์œผ๋ฉด 0, 1, 2 ๊ฐ€ ์˜ต์…˜ํƒœ๊ทธ ์•ˆ์— ํ…์ŠคํŠธ๋กœ ๋“ค์–ด๊ฐ.

for in ๋ฐ˜๋ณต๋ฌธ

  • object ์ž๋ฃŒ ๊ฐฏ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

    • ์˜ˆ๋ฅผ ๋“ค์–ด var obj = { name : 'kim', age : 20 }์™€ ๊ฐ™์€ object๊ฐ€ ์žˆ์„ ๋•Œ for in๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๋ฉด

      for (var key in obj){
      console.log('์•ˆ๋…•')
      }
      • ์—ฌ๊ธฐ์„œ key๋ผ๊ณ  ์ž‘๋ช…๋œ ๋ถ€๋ถ„์€ ๋ฐ˜๋ณต๋ฌธ์ด ๋Œ๋•Œ๋งˆ๋‹ค object์ž๋ฃŒ ์•ˆ์— ์žˆ๋˜ key๊ฐ’์ด ๋จ.
      • ์ฝ˜์†”์ฐฝ์— ์•ˆ๋…•์ด 2๋ฒˆ ์ฐํžˆ๊ฒŒ ๋จ.
      • ๊ทธ๋ฆฌ๊ณ  for in ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๋ฉด object ์ž๋ฃŒ ์•ˆ์— ์žˆ๋Š” key์™€ value๋ฅผ ๋‹ค ์ถœ๋ ฅํ•ด๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ๊ทธ๋ ‡๋‹ค๋ฉด key๋ง๊ณ  ์‹ค์ œ value๊ฐ’์„ ๊บผ๋‚ด๋ณด๊ณ  ์‹ถ์œผ๋ฉด
var obj = { name : 'kim', age : 20 }

for (var key in obj){
  console.log(obj[key])
}

arrow function

  • function(){}๊ณผ arrow function์€ ๊ฐ™์€ ๋ฌธ๋ฒ•์€ ์•„๋‹ˆ๊ณ  ์ฐจ์ด์ ์ด ์กด์žฌํ•จ.

    • ํ•จ์ˆ˜ ์•ˆ์˜ this ๊ฐ’์˜ ๋œป์ด ๋‹ฌ๋ผ์ง.

      • ๋‹ค์‹œ ๋งํ•ด arrow function ์•ˆ์—์„œ this๋ฅผ ์“ฐ๋ฉด ๋ฐ”๊นฅ์— ์žˆ๋˜ this๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์“ฐ๊ณ 
      • function์•ˆ์—์„œ this๋ฅผ ์“ฐ๋ฉด ์•Œ๋งž๊ฒŒ ์žฌ์ •์˜๊ฐ€ ๋จ.

      -์ฆ‰, ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ ์ฝœ๋ฐฑํ•จ์ˆ˜ ์•ˆ์—์„œ์˜ this๋Š” e.currentTarget์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ˆ

      • ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด arrow function๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฌธ์—์„œ ์จ์•ผํ•จ.
  • ๊ตฌ๋ฌธ ์˜ˆ์‹œ)

    pants.forEach(function(){
    })
    pants.forEach(()=>{
    })
    • ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ™์€ ์˜๋ฏธ์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜์ž„.

    • function() ๋Œ€์‹  ()=>๋ฅผ ์ป๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๋“ฏ.


array์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค (sort, map, filter)

  • sort() : ๋ฌธ์ž ์ •๋ ฌ๊ธฐ๋Šฅ

    var array = [7,3,5,2,40];
    array.sort();
    • ๋งŒ์•ฝ ์ˆซ์ž ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด sort() ์— ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•จ
    var array = [7,3,5,2,40];
    array.sort(function(a,b){
    	return a - b;
    });
    • ์œ„ ์ฝ”๋“œ์˜ ์ž‘๋™์›๋ฆฌ
      1. a์™€ b๋Š” array์•ˆ์˜ ์ž๋ฃŒ
      2. return ์–‘์ˆ˜ ์ด๋ฉด a๊ฐ€ ์šฐ์ธก์œผ๋กœ ๊ฐ€๊ณ 
        return ์Œ์ˆ˜ ์ด๋ฉด b๊ฐ€ ์šฐ์ธก์œผ๋กœ ๊ฐ.
    • ๊ทธ๋Ÿฌ๋ฉด ์ˆซ์ž ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์€ return b - a ๋กœ๋งŒ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋จ!
    • ๋ฌธ์ž ๊ฐ€๋‚˜๋‹ค ์ •๋ ฌ์€ sort()๋งŒ ์žˆ์–ด๋„ ๋˜๋Š”๋ฐ ๋ฌธ์ž๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ๋‹คํ•˜๋ฉด
    var array = ['๋‹ค','๊ฐ€','๋‚˜']
        array.sort(function(a,b){
        return b.localeCompare(a);
        });
    • localeCompare()๋ฉ”์„œ๋“œ ์‚ฌ์šฉ
      • localeCompare()์€ ๋‘ ๋ฌธ์ž์—ด์„ ์„œ๋กœ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ.
    • ๋งŒ์•ฝ!! array๊ฐ€ ์•„๋‹ˆ๊ณ  objectํ˜•์—์„œ ์ •๋ ฌ์„ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด?

      • { } - { } ๋ฅผ ํ•ด๋ดค์ž ์Œ์ˆ˜๋‚˜ ์–‘์ˆ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์Œ.
      • ๊ทธ๋Ÿฌ๋ฉด { } ๋‚ด๋ถ€์˜ ๊ฐ€๊ฒฉ์ด๋ผ๋˜์ง€ ์ˆซ์ž๊ฐ€ ์žˆ๋Š” ๊ฐ’์„ ๋นผ๋ฉด ์Œ์ˆ˜ ๋˜๋Š” ์–‘์ˆ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„๊นŒ??
        • ์˜ˆ์‹œ) return a.price - b.price
  • filter() : array ์ž๋ฃŒ์—์„œ ์›ํ•˜๋Š” ๊ฒƒ๋งŒ ํ•„ํ„ฐ์ฒ˜๋ฆฌ

    var array = [ 7,3,5,2,40]
    var ์ƒˆarray = array.filter(function(a){
    return a < 4; โ†’ ์กฐ๊ฑด์‹
    })
    • array ๋‚ด ์ž๋ฃŒ ์ค‘์— 4๋ณด๋‹ค ์ž‘์€ ๊ฐ’๋“ค๋งŒ ๋‚จ๊น€!

      ๐Ÿ’ฅ ์ฃผ์˜์‚ฌํ•ญ!!

      • filter() ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฐ˜๋“œ์‹œ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์„œ ์จ์•ผ ํ•จ.
      • .sort()๋Š” ์›๋ณธ์„ ๋ณ€ํ˜•ํ•˜๋‚˜ .filter()๋Š” ์›๋ณธ์„ ๋ณ€ํ˜•ํ•˜์ง€ ์•Š์Œ.

  • map() : array ์ž๋ฃŒ ์ „๋ถ€๋ฅผ ๋ณ€ํ˜•

    var array = [ 7,3,5,2,40]
    var ์ƒˆarray = array.map(function(a){
    return a * 4; โ†’ ์กฐ๊ฑด์‹
    })
    • ์ƒˆarray ๋ณ€์ˆ˜ ๋‚ด array ๊ฐ’๋“ค์ด 4๊ฐ€ ๊ณฑํ•ด์ง„ ์ƒํƒœ๋กœ ๋ณ€ํ•จ.
    • ์ƒˆarray = [28,21,20,8,160]

0๊ฐœ์˜ ๋Œ“๊ธ€