[JavaScript] ๋ฐฐ์—ด (1)


1. ๋ฐฐ์—ด: ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•œ ๊ฐ์ฒด๋กœ์„œ ์ˆœํšŒ์™€ ๋ณ€ํ˜• ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ

[Array - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array)

๋ฒ„์Šคํƒ€๊ธฐ : Array๋ฅผ ์‚ฌ์šฉ

์‚ฌ๋žŒ์ด ๋งŽ๋‹ค : ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๋‹ค(3๊ฐœ ์ด์ƒ)

์ค„ ์„ธ์›€ (๋‚˜์—ด) => ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฆ„

์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฆ„ : ์‚ญ์ œ,์ˆ˜์ •,์ถ”๊ฐ€๊ฐ€ ์šฉ์ด(์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ข‹๋‹ค)


{
  /* ๊ธฐ๋ณธ ๋ฐฐ์—ด ์ถœ๋ ฅ */

  let arr =[];
  arr[0]= 'ํ™๊ธธ๋™';
  arr[1]= 20;
  arr[2]= '์„œ์šธ์‹œ ๊ฐ•๋‚จ๊ตฌ';
  arr[3]= '010-0000-0000';

  console.log('์ด๋ฆ„:',arr[0])
  console.log('๋‚˜์ด:',arr[1])
  console.log('์ฃผ์†Œ:',arr[2])
  console.log('๋ฒˆํ˜ธ:',arr[3])
  console.log('๊ฐฏ์ˆ˜:',arr.length)
}

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
์ด๋ฆ„: ํ™๊ธธ๋™
๋‚˜์ด: 20
์ฃผ์†Œ: ์„œ์šธ์‹œ ๊ฐ•๋‚จ๊ตฌ
๋ฒˆํ˜ธ: 010-0000-0000
๊ฐฏ์ˆ˜: 4

[Done] exited with code=0 in 0.056 seconds
{
  /* ์ดˆ๊ธฐ๊ฐ’ */

    const menuList = ['Room0','Room1','Room2','Room3'];

    //for๋ฌธ์œผ๋กœ ์ถœ๋ ฅ

    for(let i=0; i<menuList.length; i++){
      let menuitem =menuList[i];
      console.log(i,'๋ฒˆ์งธ๋ฐฉ:',menuitem)
    }
    console.log('------------------------------')

    // for of๋ฌธ
    let cnt = 0;
    for(let menu of menuList){
      let menuItem = menu;
      console.log(cnt,'๋ฒˆ์งธ๋ฐฉ:',menuItem);
      cnt++;
    }
    console.log('------------------------------')

    //for in ๋ฌธ
    for(let idx in menuList){ // index๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜ด
      let menuItem = menuList[idx];
      console.log(idx,'๋ฒˆ์งธ๋ฐฉ',menuList)
    }
}

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
0 ๋ฒˆ์งธ๋ฐฉ: Room0
1 ๋ฒˆ์งธ๋ฐฉ: Room1
2 ๋ฒˆ์งธ๋ฐฉ: Room2
3 ๋ฒˆ์งธ๋ฐฉ: Room3
------------------------------
0 ๋ฒˆ์งธ๋ฐฉ: Room0
1 ๋ฒˆ์งธ๋ฐฉ: Room1
2 ๋ฒˆ์งธ๋ฐฉ: Room2
3 ๋ฒˆ์งธ๋ฐฉ: Room3
------------------------------
0 ๋ฒˆ์งธ๋ฐฉ [ 'Room0', 'Room1', 'Room2', 'Room3' ]
1 ๋ฒˆ์งธ๋ฐฉ [ 'Room0', 'Room1', 'Room2', 'Room3' ]
2 ๋ฒˆ์งธ๋ฐฉ [ 'Room0', 'Room1', 'Room2', 'Room3' ]
3 ๋ฒˆ์งธ๋ฐฉ [ 'Room0', 'Room1', 'Room2', 'Room3' ]

[Done] exited with code=0 in 0.053 seconds

2. ๋ฐฐ์—ด ์ˆœํ™˜ For๋ฌธ ํ™œ์šฉ


/* ๋ฐฐ์—ด ์ˆœํ™˜์œผ๋กœ ์ด๋ฆ„ ์กฐํšŒ */

{
  /* ์ดˆ๊ธฐ๊ฐ’ */
  let name = ['๊ฐ•ํ˜ธ๋™','์œ ์žฌ์„','์‹ ๋™์—ฝ','์ด์ˆ˜๊ทผ','๊น€ํฌ์ฒ ']
  let len = name.length;
  let username = prompt('์ด๋ฆ„ ์กฐํšŒ','์กฐํšŒํ•  ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”');

  //for๋ฌธ: ์กฐํšŒ๊ฐ€ ๋˜๋ฉด break๋กœ ๋๋‚ด๊ธฐ

  for(let i=0; i<len; i++){
    if(username==name[i]){
      console.log(username,'์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค')
      break
    }
  }

  //for of๋ฌธ
  for(let namelist of name){
    if(namelist==username){
      console.log(username,'์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค')
      break
    }
  }

  //for in๋ฌธ
  for(let idx in name){ // ์ธ๋ฑ์Šค๋ฒˆํ˜ธ ์ถœ๋ ฅ
    if(name[idx]==username){
      console.log(username,'์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค')
      break
    }
  }
}

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
๊ฐ•ํ˜ธ๋™ ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค
๊ฐ•ํ˜ธ๋™ ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค
๊ฐ•ํ˜ธ๋™ ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค

[Done] exited with code=0 in 0.053 seconds

3. toString,join

/* toString,join ํ™œ์šฉ */

{
  let name = ['๊ฐ•ํ˜ธ๋™','์œ ์žฌ์„','์‹ ๋™์—ฝ','์ด์ˆ˜๊ทผ','๊น€ํฌ์ฒ ']
  let str  = name.toString();
  let str1  = name.join('+');
  let str2  = name.join('-');
  let str3  = name.join(' ');
  let str4  = name.join('');

  console.log('str:',str);
  console.log('str์˜ ํƒ€์ž…์€?',typeof(str))

  console.log('str1:',str1);

  console.log('str2:',str2);

  console.log('str3:',str3);

  console.log('str4:',str4);
}

=> ๊ฒฐ๊ณผ๊ฐ’
[Running] node "/workspaces/codespaces-blank/index.js"
str: ๊ฐ•ํ˜ธ๋™,์œ ์žฌ์„,์‹ ๋™์—ฝ,์ด์ˆ˜๊ทผ,๊น€ํฌ์ฒ 
str์˜ ํƒ€์ž…์€? string
str1: ๊ฐ•ํ˜ธ๋™+์œ ์žฌ์„+์‹ ๋™์—ฝ+์ด์ˆ˜๊ทผ+๊น€ํฌ์ฒ 
str2: ๊ฐ•ํ˜ธ๋™-์œ ์žฌ์„-์‹ ๋™์—ฝ-์ด์ˆ˜๊ทผ-๊น€ํฌ์ฒ 
str3: ๊ฐ•ํ˜ธ๋™ ์œ ์žฌ์„ ์‹ ๋™์—ฝ ์ด์ˆ˜๊ทผ ๊น€ํฌ์ฒ 
str4: ๊ฐ•ํ˜ธ๋™์œ ์žฌ์„์‹ ๋™์—ฝ์ด์ˆ˜๊ทผ๊น€ํฌ์ฒ 

[Done] exited with code=0 in 0.052 seconds

4. push,pop,unshift,shift

1): push() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.(์›๋ณธ์ด ๋ฐ”๋€œ)

[Array.prototype.push() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push)

2): pop() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.pop() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)

3): unshift() ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.unshift() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift)

4): shift() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ€ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.shift() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)
/* push,pop,unshift,shift ํ™œ์šฉ */

	/* (1). push ํ™œ์šฉ */

  let color = ['red','green','blue','yellow','orange'];
  color.push('purple'); // ๋งจ๋’ค ๋ฐฐ์—ด purple ์ถ”๊ฐ€
  color.push('pink'); // ๋งจ๋’ค ๋ฐฐ์—ด pink ์ถ”๊ฐ€
  console.log(color);

=>๊ฒฐ๊ณผ๊ฐ’

['red','green','blue','yellow','orange','purple','pink']

--------------------------------------------------------------------

/* (2). pop ํ™œ์šฉ */

  color.pop(); //๋งจ๋’ค ๋ฐฐ์—ด ์‚ญ์ œ
  console.log(color);
  console.log("")

=> ๊ฒฐ๊ณผ๊ฐ’

[ 'red', 'green', 'blue', 'yellow', 'orange', 'purple']

--------------------------------------------------------------------

/* (3). unshift ํ™œ์šฉ */

  color.unshift('hotpink'); // ๋งจ์•ž ๋ฐฐ์—ด ์ถ”๊ฐ€
  console.log(color)

=> ๊ฒฐ๊ณผ๊ฐ’

['hotpink', 'red', 'green', 'blue', 'yellow', 'orange', 'purple']

--------------------------------------------------------------------

/* (4). shift ํ™œ์šฉ */

  color.shift(); // ๋งจ ์•ž ๋ฐฐ์—ด ์‚ญ์ œ
  console.log(color);

=> ๊ฒฐ๊ณผ๊ฐ’

['red', 'green', 'blue', 'yellow', 'orange', 'purple']

--------------------------------------------------------------------

/* (5). ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ์ˆ˜์ • */
  //์ˆ˜์ •
  color[0]='๋ผ์ž„';
  color[1]='๋ธ”๋ฃจ';
  console.log(color);

=> ๊ฒฐ๊ณผ๊ฐ’

[ '๋ผ์ž„', '๋ธ”๋ฃจ', 'blue', 'yellow', 'orange', 'purple' ]


5. isArray,concat,slice,splice

1): Array.isArray()๋ฉ”์„œ๋“œ๋Š” ์ธ์ž๊ฐ€ย Array์ธ์ง€ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.(๋ฐ˜ํ™˜์€ Boolean๊ฐ’)

[Array.isArray() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)

2): concat()ย ๋ฉ”์„œ๋“œ๋Š” ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ’๋“ค์„ ๊ธฐ์กด ๋ฐฐ์—ด์— ํ•ฉ์ณ์„œ ์ƒˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.concat() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/concat)
  • ๊ธฐ์กด๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    3): slice()ย ๋ฉ”์„œ๋“œ๋Š” ์–ด๋–ค ๋ฐฐ์—ด์˜ย beginย ๋ถ€ํ„ฐย endย ๊นŒ์ง€(endย ๋ฏธํฌํ•จ)์— ๋Œ€ํ•œ ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.slice() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)
  • ์›๋ณธ ๋ฐฐ์—ด์€ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    4): splice()ย ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ธฐ์กด ์š”์†Œ๋ฅผ ์‚ญ์ œ ๋˜๋Š” ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ์ƒˆ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

[Array.prototype.splice() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
/* isArray,concat,slice,splice ํ™œ์šฉ */

	/* (1). isArray ํ™œ์šฉ */

	let color = 'red,green,pink,skyblue,hotpink';

  /* string์„ ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝ */
  let arr = color.split(',');

  console.log(Array.isArray(color)) // ๋ฐฐ์—ด์ธ์ง€ ํŒ๋ณ„ false
  console.log(Array.isArray(arr)) // ๋ฐฐ์—ด์ธ์ง€ ํŒ๋ณ„ true

=>๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
false
true

[Done] exited with code=0 in 0.054 seconds

--------------------------------------------------------------------

/* (2). concat ํ™œ์šฉ */

	const arr1 = [100,200,300,400];
	const arr2 = [10,20,30,40,50];
  const arr3 = [1,2,3,4,5];
  console.log(arr1);

  let arrToConcat = arr1.concat(arr2,arr3);
  console.log('arrToConcat?',arrToConcat);

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"

๋ฐฐ์—ด์˜ ์ดˆ๊ธฐ๊ฐ’ ์ถœ๋ ฅ [ 100, 200, 300, 400 ]

arrToConcat? [100, 200, 300, 400, 10, 20 ,30 ,40 ,50 ,1 ,2 ,3 ,4 ,5]

[Done] exited with code=0 in 0.057 seconds

--------------------------------------------------------------------

/* (3). slice ํ™œ์šฉ */

	let arr = [10,20,30,40,50,60];
  let str = arr.slice(1,3); // slice(์‹œ์ž‘์ธ๋ฑ์Šค~,๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด)
  let str1 = arr.slice(3); //slice(์‹œ์ž‘์ธ๋ฑ์Šค๋ถ€ํ„ฐ~)
  let str2 = arr.slice(1,-2);
  let str3 = arr.slice(-1); // slice(์Œ์ˆ˜๋ฉด ๋’ท์ž๋ฆฌ๋ถ€ํ„ฐ)
  console.log(`${str}`);
  console.log(`${str1}`);
  console.log(`${str2}`);
  console.log(`${str3}`);

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
20,30
40,50,60
20,30,40
60

[Done] exited with code=0 in 0.056 seconds['hotpink', 'red', 'green', 'blue', 'yellow', 'orange', 'purple']

--------------------------------------------------------------------

/* (4). splice ํ™œ์šฉ */

	let data = [10,20,30,40,50,60];
  data.splice(1,3); //  splice(์‹œ์ž‘์ธ๋ฑ์Šค,๋ฐฐ์—ด์ˆซ์ž) ๋ฐฐ์—ด์„ ์‚ญ์ œ์šฉ
  console.log(data);

  let data1 = [10,20,30,40,50,60];
  data1.splice(1,0,'ํ™๊ธธ๋™','๊ฐ•ํ˜ธ๋™','๊น€์ฒ ์ˆ˜');
  //splice(์‹œ์ž‘์ธ๋ฑ์Šค๋ฒˆํ˜ธ,๋ฐฐ์—ด์ž๋ฆฟ์ˆ˜ ,)
  console.log(data1);

  let data2 = [10,20,30,40,50,60];
  data2.splice(2,2,'a','b','c','d');
  console.log(data2);

=> ๊ฒฐ๊ณผ๊ฐ’

[Running] node "/workspaces/codespaces-blank/index.js"
[10, 50, 60]

[10, 'ํ™๊ธธ๋™','๊ฐ•ํ˜ธ๋™', '๊น€์ฒ ์ˆ˜', 20, 30, 40, 50, 60]

[10, 20, 'a', 'b', 'c', 'd', 50, 60]

[Done] exited with code=0 in 0.059 seconds