Javascript ์ •๋ฆฌ(4)

kirin.logยท2021๋…„ 2์›” 3์ผ
0

โœ… Array

๐Ÿ‘‰ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ์ฒœ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ‘‰ ๋ฐฐ์—ด์€ ๋Œ€๊ด„ํ˜ธ([])๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๋‹ค. ๋นˆ๋ฐฐ์—ด ๋˜๋Š” ์†Œ(element)๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์ด ์žˆ๋‹ค.

let city = "์„œ์šธ"
let city = "๋Œ€์ „"
let city = "๋Œ€๊ตฌ"
let city = "๋ถ€์‚ฐ"
let city = "๊ด‘์ฃผ"
.
.
.
let KOSPI = 2062.82
let KOSPI = 2053.2
let KOSPI = 2045.92
let KOSPI = 2058.82
let KOSPI = 2053.12
// ์ด๋ ‡๊ฒŒ ์ˆ˜๋งŽ์€ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ด๋ฏ€๋กœ
// ๋ณ€์ˆ˜ 1๊ฐœ(cities)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐฐ์—ด(array)๋กœ ๊ฐ’์„ ํ•œ ๋ฒˆ์— ๋‹ด์•„์ค„ ์ˆ˜ ์žˆ๋‹ค.

let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋ถ€์‚ฐ", "๊ด‘์ฃผ", "์ œ์ฃผ๋„"];
let KOSPI = [2062.82, 2053.2, 2045.92, 2058.82, 2053.12, 2055.7]; 

โฉ ๋ฐฐ์—ด์˜ ๊ฐ’, ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ Element(์š”์†Œ)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
โฉ ์š”์†Œ์™€ ์š”์†Œ ์‚ฌ์ด์—๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
โฉ ์š”์†Œ ์ž๋ฆฌ์—๋Š” String, Number, Array ๋ชจ๋‘ ๊ฐ€๋Šฅ

var anything = ["๋Œ€์ „", 1987, ["ํ•˜๋‚˜", "๋‘˜", 3]];
console.log(anything[0]);  // "๋Œ€์ „"
console.log(anything[1]);  // 1987
console.log(anything[2]);  // ["ํ•˜๋‚˜", "๋‘˜", 3]
// Stringํ˜•์ธ "๋Œ€์ „"์€ index๊ฐ€ 0
// Numberํ˜•์ธ 1987์€ index๊ฐ€ 1
// Arrayํ˜•์ธ ["ํ•˜๋‚˜", "๋‘˜", 3]์€ index๊ฐ€ 2

๐Ÿ‘‰ ๋ฐฐ์—ด์˜ ์ˆœ์„œ(Index)
index๋Š” 1์ด ์•„๋‹ˆ๋ผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

/* 
`getElement` ํ•จ์ˆ˜์•ˆ์— arr ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค.
arr ๋ณ€์ˆ˜๋Š” ๋ฐฐ์—ด์„ ํ• ๋‹นํ–ˆ๊ณ ์š”, ๋ฐฐ์—ด์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์š”์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋„ค์š”!
๋ฐฐ์—ด์ด ๋‹ด๊ธด arr ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜์—ฌ `getElement` ํ•จ์ˆ˜๊ฐ€ `"array"` ๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”.
*/

function getElement() {   //๋นˆํ•จ์ˆ˜
   let arr = [3, [4, ["array", 9], 2+3], [0]];
           
   return arr[1][1][0];  // 'array'๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆœ์„œ
}
console.log(getElement());


/* 
`addFirstAndLast` ํ•จ์ˆ˜ ์•ˆ์— ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
`addFirstAndLast` ํ•จ์ˆ˜์— ์ฃผ์–ด์ง„ ์ธ์ž `myArray`๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ array ์ž…๋‹ˆ๋‹ค.
`addFirstAndLast` ํ•จ์ˆ˜์— ์ฃผ์–ด์ง„ ์ธ์ž `myArray` ์˜ ์ฒซ๋ฒˆ์งธ element์™€ ๋งˆ์ง€๋ง‰ element์˜ ๊ฐ’์„ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
๋งŒ์ผ `myArray`์— ํ•œ ๊ฐœ์˜ ์š”์†Œ๋งŒ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์š”์†Œ์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด ์ฃผ์‹œ๊ณ  ์š”์†Œ๊ฐ€ ์—†๋Š” ๋น„์–ด์žˆ๋Š” array๋ผ๋ฉด 0์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
*/

let addFirstAndLast = (myArray) => {
   if (myArray.length > 1) {      // elements ๊ฐฏ์ˆ˜๋Š” ์ตœ์†Œ 2๊ฐœ ์ด์ƒ(์ฒซ๋ฒˆ์งธ element์™€ ๋งˆ์ง€๋ง‰ element์˜ ๊ฐ’์„ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—)
      return myArray[0] + myArray[myArray.length-1];
   }  
   //myArray์˜ 0๋ฒˆ์งธ, myArray์˜ ๋งˆ์ง€๋ง‰๋ฒˆ์งธ(length-1) ๊ธฐ์–ตํ•˜๊ธฐ!!
   if (myArray.length == 1) {      // ๋ฐฐ์—ด์˜ ์ „์ฒด ๊ธธ์ด๊ฐ€ 1 ์ด๋ผ๋ฉด myArray๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ
      return myArray;
    }
   if (myArray.length == 0) {  // ๋ฐฐ์—ด ์ „์ฒด์— ๊ฐ’์ด ์—†๋‹ค๋ฉด
      return 0;
    }
}
addFirstAndLast([1,2,4]);   // 5
addFirstAndLast([3]);       // 3
addFirstAndLast([])         // 0

โœ… for๋ฌธ

๐Ÿ‘‰ ์ฝ”๋“œ๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ๋ฐ˜๋ณต์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค.

let count = 1;
for (let i = 0; i <= 5; i++) {    
  count = count + 1;
}
// i๋Š” 1์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ 0, 1, 2, 3, 4, 5๊นŒ์ง€ ์ฆ๊ฐ€, for๋ฌธ ๋‚ด๋ถ€์˜ ์ฝ”๋“œ ์ด 6๋ฒˆ ์‹คํ–‰
// i ๊ฐ€ 5๊ฐ€ ๋ ๋•Œ๊นŒ์ง€ for ๋ฌธ์˜ {} ์•ˆ์„ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€, 6์ด ๋˜๋ฉด i <= 5๋ผ๋Š” ์‹์€ false ๊ฐ€ ๋จ. (6 > 5)

for (var i = 2; i < 10; i = i + 2) 
// i ๋Š” 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 10๋ณด๋‹ค ์ž‘์„๋•Œ๊นŒ์ง€ 2์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ for๋ฌธ์„ ๋Œ๋ฆฐ๋‹ค.
// i๊ฐ€ 2,4,6,8 ์œผ๋กœ 2์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ for๋ฌธ์„ ์ด 4๋ฒˆ ๋ฐ˜๋ณต.
// i ๋„ for๋ฌธ์„ ๋Œ๋ฉฐ ๊ณ„์† ๋ณ€ํ•˜๋Š” ๊ฐ’์ด๋‹ค.
// for๋ฌธ ์กฐ๊ฑด์˜ ๋งˆ์ง€๋ง‰์— `i = i + 2`๋Š” ์›๋ž˜์˜ i ์— 2์”ฉ ๋”ํ•œ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ for ๋ฌธ์ด ํ•œ ๋ฒˆ ๋Œ ๋•Œ๋งˆ๋‹ค i ๋Š” 2์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ.

for (var i = 10; i > 7; i--)
// i๋Š” 10๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 7๋ณด๋‹ค ํด๋•Œ๊นŒ์ง€ (7๋ณด๋‹ค ํด ๋™์•ˆ๋งŒ) - 1์”ฉ ๊ฐ์†Œํ•˜๋ฉด์„œ for๋ฌธ ์•ˆ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.
// i๊ฐ€ 10, 9, 8 ์œผ๋กœ 1์”ฉ ๊ฐ์†Œํ•˜๋ฉฐ for๋ฌธ์„ ์ด 3๋ฒˆ ๋ฐ˜๋ณตํ•œ๋‹ค.

๐Ÿ‘‰ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์˜ ์กฐ๊ฑด๋ฌธ ์‹คํ–‰ ๋ฐฉ๋ฒ•

const home = "๋Œ€์ „";
let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋ถ€์‚ฐ", "๊ด‘์ฃผ", "์ œ์ฃผ๋„"];
// home์ด๋ผ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ("๋Œ€์ „" ์š”์†Œ ํ• ๋‹น), cities๋ผ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ(๋ฐฐ์—ด๊ฐ’ ํ• ๋‹น)

for (let i = 0; i <= cities.length; i++) {
   if (cities[i] === home) {    //cities์˜ ๋ฐฐ์—ด๊ฐ’์ด ๋ณ€์ˆ˜ home์˜ ๊ฐ’๊ณผ ๊ฐ™์„ ๋•Œ,  
   console.log("๋„ค, " + cities[i] + " ์‚ฌ์‹œ๋Š”๊ตฐ์š”");   
   }   // '๋„ค, ๋Œ€์ „ ์‚ฌ์‹œ๋Š”๊ตฐ์š”' ์ถœ๋ ฅ (cities[i] = home = '๋Œ€์ „')
}

โ— for๋ฌธ์„ ์ž‘์„ฑํ•  ๋•Œ, ๋ฐฐ์—ด์˜ ์ด ๊ธธ์ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” for๋ฌธ์—์„œ i๊ฐ€ ์–ด๋””๊นŒ์ง€ ๋Œ์•„์•ผ ํ•˜๋Š”์ง€ ์ œํ•œํ•ด์ฃผ๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด์˜ ์ด ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

console.log(๋ฐฐ์—ด์ด๋ฆ„.length);

let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋Œ€์ „", "๊ด‘์ฃผ", "๋Œ€์ „"];
console.log(cities.length);   // 6 
// cities ๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” ์ด 6๊ฐœ ์ด๋ฏ€๋กœ 6 ์ด๋ผ๋Š” ์ˆซ์ž๊ฐ€ ๋ฐ˜ํ™˜.

โ— ๋ฐฐ์—ด์˜ ์ด ๊ธธ์ด๋ฅผ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฐฐ์—ด์ด๋ฆ„.length์„ ์‚ฌ์šฉํ•˜์—ฌ for๋ฌธ์— ์ ์šฉํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.
โœจ ๊ฐ€์šด๋ฐ ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์ฃผ์˜!!!
<= ๊ฐ€ ์•„๋‹Œ <๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ผญ ์ „์ฒด ๊ธธ์ด(.length) ๋ฏธ๋งŒ ์ด์–ด์•ผ ํ•œ๋‹ค.

for (var i = 0; i < cities.length; i++) {
   if (cities[i] === home) {
     alert("์•„, ์—ฌ๊ธฐ ์‚ฌ์‹œ๋Š”๊ตฐ์š”");
   }
}
/* 
findSmallestElement ์˜ arr ์ธ์ž๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ array ์ž…๋‹ˆ๋‹ค.
array ์˜ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
๋งŒ์ผ array๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด 0์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ array์ด ์ธ์ž(input)์œผ๋กœ ๋“ค์–ด์™”๋‹ค๋ฉด 1์ด ๋ฆฌํ„ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ex)  [20, 200, 23, 1, 3, 9]
*/

function findSmallestElement(arr) {
    if (arr.length === 0) {
    return 0; //๋นˆ ๋ฐฐ์—ด์ด๋ฉด 0์„ ๋ฆฌํ„ด
    } 
 
    else { 
      let min = arr[0];    // ๋ณ€์ˆ˜ min์— ๋ฐฐ์—ด์˜ ์•„๋ฌด ๊ฐ’(Index 0๋ฒˆ์งธ)์„ ์ž„์˜๋กœ ์„ค์ •. (๊ฐ€์ƒ์˜ ์ตœ์†Ÿ๊ฐ’)
      for (i = 0 ; i < arr.length; i++) {  // 0๋ฒˆ์งธ ์ž„์˜๊ฐ’๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ „์ฒด๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋Œ๋ฆฐ๋‹ค(ํ•˜๋‚˜์”ฉ ๊ฐ’์„ ๋น„๊ตํ•ด๊ฐ)
          if (arr[i] < min ) {  // arr๋ฐฐ์—ด ๊ฐ’์ด ์ž„์˜๋กœ ์„ค์ •ํ•œ ๊ฐ’(0๋ฒˆ์งธ ์ž„์˜์˜ ๊ฐ’)๋ณด๋‹ค ์ž‘์œผ๋ฉด, 
              min = arr[i];  // ์ตœ์†Ÿ๊ฐ’ ๊ฐฑ์‹ 
          } 
       } return min;  
    }
}

findSmallestElement([200, 30, 5, 7, 200, 1, 9]);   // 1 ์ถœ๋ ฅ
// 200(๋ฐฐ์—ด์—์„œ 0๋ฒˆ์งธ ๊ฐ’)๊ณผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋น„๊ตํ•ด๊ฐ€๋ฉด์„œ ์ตœ์†Ÿ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด ๋‚˜๊ฐ„๋‹ค
/* 
200 > 30 โžก 30 = min
30 > 5 โžก 5 = min
5 > 7 โžก 5 = min
5 > 200 โžก 5 = min
5 > 1 โžก 1 = min
*/



// ๋‹ค๋ฅธ ํ’€์ด
function findSmallestElement(arr) {
  for(let i=0; i<arr.length; i++){
      if(arr.length >0) {
        let small = arr.sort();
        return small[0]
      }
      else if (arr.length = 0) {
        return 0
      }
    }
  }
    findSmallestElement([20, 200, 23, 1, 3, 9])

โœ… ๋ฐฐ์—ด ์กฐ์ž‘ํ•˜๊ธฐ

๐Ÿ‘‰ ๋นˆ ๋ฐฐ์—ด ์„ ์–ธ ํ›„, ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

index๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ˆ˜์ •์ด๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

let cities = [];

cities[0] = "์„œ์šธ"; // ["์„œ์šธ"]
cities[1] = "๋Œ€์ „"; // ["์„œ์šธ", "๋Œ€์ „"]
cities[2] = "๋Œ€๊ตฌ"; // ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ"]
cities[5] = "์ œ์ฃผ๋„"; // ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", undefined, undefined, "์ œ์ฃผ๋„"]
// ์š”์†Œ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š์•˜์œผ๋ฉด undefined ๋ผ๊ณ  ์ถœ๋ ฅ

console.log(cities[5]); // "์ œ์ฃผ๋„" ์ถœ๋ ฅ

๐Ÿ‘‰ ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋˜๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

push, unshiftํ•จ์ˆ˜๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

โฉ push(): array์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„, ์ฆ‰ ๊ผฌ๋ฆฌ์— ์š”์†Œ๋“ค์„ ์ถ”๊ฐ€
โฉ unshift(): array์˜ ๋งจ ์•ž ๋ถ€๋ถ„, ์ฆ‰ ๋จธ๋ฆฌ์— ์š”์†Œ๋“ค์„ ์ถ”๊ฐ€

let cities = [];

cities.push("๊ฒฝ์ฃผ", "์ „์ฃผ");  // 8 ์ถœ๋ ฅ, ๊ธฐ์กด cities๋ฐฐ์—ด ์š”์†Œ๋“ค(6๊ฐœ)์—์„œ ๋’ค์— 2๊ฐœ ์ถ”๊ฐ€ํ•ด์„œ 8.
cities.unshift("์ธ์ฒœ");  // 9 ์ถœ๋ ฅ, cities๋ฐฐ์—ด์ด ์ด 8๊ฐœ๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ ๋งจ ์•ž์— 1๊ฐœ ์ถ”๊ฐ€ํ•ด์„œ 9.

console.log(cities);  // ['์ธ์ฒœ', '์„œ์šธ', '๋Œ€์ „', '๋Œ€๊ตฌ', undefined, undefined, '์ œ์ฃผ๋„', '๊ฒฝ์ฃผ', '์ „์ฃผ' ]

โ— cities๋ผ๋Š” ๋ณ€์ˆ˜์— [ ] ๋ฐฐ์—ด์„ ํ• ๋‹นํ•˜๋Š” ์ˆœ๊ฐ„, cities๋ผ๋Š” ๋ณ€์ˆ˜๋Š” Arrayํ˜•์ด ๋œ๋‹ค.

let day = ['m', 's', 'w', 't'];
day[1] = 't';  // 2๋ฒˆ์งธ ์š”์†Œ ์ˆ˜์ •(๋ณ€๊ฒฝ s โžก t)
day[4] = 'f';  // 4๋ฒˆ์งธ ์š”์†Œ ์ถ”๊ฐ€
day[5] = 's';  
console.log(day); // ['m','t','w','t','f','s']

let month = [1, 2, 3, 4]
month.push(5); // 5 ์ถœ๋ ฅ
console.log(month); // [1,2,3,4,5]

๐Ÿ‘‰ ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•

pop shiftํ•จ์ˆ˜๋กœ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•

โฉ pop(): array์˜ ๊ผฌ๋ฆฌ์— ์š”์†Œ๋“ค์„ ์ œ๊ฑฐ, ์ฆ‰ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ , ๋งˆ์ง€๋ง‰ ์š”์†Œ 1๊ฐœ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜
โฉ shift(): array์˜ ๋งจ ์•ž ๋ถ€๋ถ„, ์ฆ‰ ๋จธ๋ฆฌ์— ์š”์†Œ๋“ค์„ ์ œ๊ฑฐ

let cities = [];

cities.pop("๊ฒฝ์ฃผ", "์ „์ฃผ");  // "์ „์ฃผ" ์ถœ๋ ฅ, ๊ธฐ์กด cities๋ฐฐ์—ด ์š”์†Œ๋“ค(9๊ฐœ)์—์„œ ๋’ค์—์„œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋งŒ  1๊ฐœ ์ œ๊ฑฐํ•ด์„œ 8๊ฐœ๊ฐ€ ๋จ.
cities.shift("์ธ์ฒœ");  // '์ธ์ฒœ' ์ถœ๋ ฅ, cities๋ฐฐ์—ด์ด ์ด 8๊ฐœ๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ ๋งจ ์•ž์— 1๊ฐœ ์ œ๊ฑฐํ•ด์„œ 7.

console.log(cities);  // ['์„œ์šธ', '๋Œ€์ „', '๋Œ€๊ตฌ', undefined, undefined, '์ œ์ฃผ๋„', '๊ฒฝ์ฃผ']

/* 
divideArrayInHalf ํ•จ์ˆ˜์˜ ์ธ์ž์ธ array๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ •ํ™•ํžˆ ์ด 5๊ฐœ์˜ ์š”์†Œ(element)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
array์˜ ์š”์†Œ๋“ค ์ค‘ 10๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ’์˜ element๋“ค์€ result์˜ ๋งจ ์•ž์œผ๋กœ, 
10๋ณด๋‹ค ํฐ ๊ฐ’์˜ ์š”์†Œ๋“ค์€ result์˜ ๋งจ ๋’ค๋กœ ์žฌ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
(์ค‘์š”์‚ฌํ•ญ) ์ด๋•Œ, ์ˆœ์„œ๋Š” array์˜ ๋งจ ๋’ค์˜ ์š”์†Œ ๋ถ€ํ„ฐ ๋งจ ์•ž์˜ ์š”์†Œ๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ €์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ์ธ์ž array ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„๋•Œ
[1, 20, 10, 5, 100]
result ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด ์ง€๋Š” ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ,
[100]
[5, 100]
[10, 5, 100]
[10, 5, 100, 20]
[1, 10, 5, 100, 20]
์•„๋ž˜์™€ ๊ฐ™์€ result๊ฐ€ ๋ฆฌํ„ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
[1, 10, 5, 100, 20]
*/

// (1) for๋ฌธ์„ -๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฉ์‹
function divideArrayInHalf(array) {
  let result = [];  // ๋นˆ๋ฐฐ์—ด๋กœ ๋‘”๋‹ค. push์™€ unshift๋กœ ๋„ฃ์–ด์ค„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ. 
                      // ์ด๊ณณ์— ๋“ค์–ด๊ฐˆ ๊ฐ’์€ ํ•จ์ˆ˜ ํ˜ธ์ถœํ• ๋•Œ ๋„ฃ์–ด์ค€๋‹ค.
                      // ํ•จ์ˆ˜๋กœ ๋ฐฐ์—ด๊ฐ’ ์ง€์ • โžก for๋ฌธ์„ ํ†ตํ•ด ์ˆœ์„œ ์ง€์ •(์ •๋ ฌ) โžก result๋กœ ๋ฆฌํ„ด
  for (let i = array.length; i>=0; i--){  // i๋Š” ๋ฐฐ์—ด์˜ ์ „์ฒด ๊ธธ์ด(์•„์ง ๊ฐ’์„ ๋„ฃ๊ณ  ํ˜ธ์ถœํ•˜๊ธฐ ์ „์ด๋‹ˆ๊น), maximum์ด ์—†์œผ๋ฏ€๋กœ i--๋ฅผ ์จ์„œ 0๊นŒ์ง€ ๊ฐ’์„ ์ค„์—ฌ๋‚˜๊ฐ„๋‹ค.
    if(array[i] <= 10) {   // ํ†ต ๋ฐฐ์—ด์ด 10๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ,
      result.unshift(array[i]);  // result ๋ฐฐ์—ด์— '๋งจ ์•ž'๋ถ€ํ„ฐ ์ถ”๊ฐ€ํ•ด๋ผ
    }
    if(array[i] > 10) {    // ํ†ต ๋ฐฐ์—ด์ด 10๋ณด๋‹ค ํด ๋•Œ,
      result.push(array[i]);  // result ๋ฐฐ์—ด์— '๋งจ ๋’ค'๋ถ€ํ„ฐ ์ถ”๊ฐ€ํ•ด๋ผ
    }
  }
  return result;   // result ๋ณ€์ˆ˜(๊ฐ’=๋ฐฐ์—ด) ๋ฆฌํ„ด
}
//ํ•จ์ˆ˜ ํ˜ธ์ถœํ•  ๋•Œ ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค 
divideArrayInHalf([1, 20, 10, 5, 100]);  

// (2) for๋ฌธ์„ +๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฉ์‹(arrow ํ•จ์ˆ˜์‹)
let divideArrayInHalf = (arr) => {
  let result = [];
 
  for (i= 0; i < arr.length; i++){
    if (arr[i] <= 10) {
      result.unshift(arr[i]);
    }

    if (arr[i] > 10) {
      result.push(arr[i]);
    }
  } return result;
}
divideArrayInHalf([1,40,5,84,9])
profile
boma91@gmail.com

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