Javascript/GMA(2302~)

23.04.25 자바스크립트 배열객체 심화

hyerin1201 2023. 4. 26. 14:13

문자열과 배열을 서로 변환하는 방법

 
   문자열 ->배열 첫번째 (스플릿메서드)
 
   let str5 = "Hello everyone";
   str5.split("");
   (14) ['H', 'e', 'l', 'l', 'o', ' ', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
 
   let arr2 = str5.split("");
   arr2
   (14) ['H', 'e', 'l', 'l', 'o', ' ', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
 
 
   문자열 ->배열 두번째 (전개연산자)
 
   let str5 = "Hello everyone";
   let arr3 = [...str5];
   arr3
   (14) ['H', 'e', 'l', 'l', 'o', ' ', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
 
 
   문자열 ->배열 세번째 (array, from)
 
   arr4 = Array.from(str5);
   (14) ['H', 'e', 'l', 'l', 'o', ' ', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
 
   *배열 -> 문자 (join메서드)
   문자열.join( );
 

 

 배열을 생성하는 방법

 
   *배열 생성 방법
   1. 배열을 만들고 할당
   2. 리터럴 표기법 생성
   3. Array 객체의 인스턴스 객체로 생성
 
   1. 빈배열 만들고 할당
   let seasons = [];
   seasons[0] = "spring";
   seasons[1] = "summer";
 
   seasons
   (2) ['spring', 'summer']
 
   2.리터럴표기법
   let pets = ["dog","cat","mouse"]
 
   3. Array 객체 (내장객체)
   let fruits = new Array("사과", "포도");
 
   fruits
   (2) ['사과', '포도']
 
 

 

배열객체의 값을 변경할때

 
   객체 변경
   let pets = ["dog","cat","mouse"]
   pets[1] = "hamster";
 
   pets
   (3) ['dog', 'hamster', 'mouse']
 

 

객체에 새로운 값을 부여할때

 
   객체 새로운 부여
   let pets = ["dog","cat","mouse"]
   pets[4] = "rabbit";
 
   pets
   (5) ['dog', 'cat', 'mouse', empty, 'rabbit'] //비어있는 인덱스 3번은 빈공간으로 남게됨.
 

 

 

배열은 반복문과 함께 많이 사용된다.

 
   배열 = > 반복문을 많이 사용
 
   let colors = ["red", "green", "blue", "white","black"];
   for(let i = 0; i < colors.length; i++){
     console.log(colors[i])
   };
   for(color of colors) {
     console.log(color)
   };
 
   let aniamls = ["lion", "bear", "bird"];
   aniamls.forEach((aniaml) => {
     console.log(aniaml)
   });
 
   매개변수가 2개라면(값과 인덱스)
   aniamls.forEach((animal, i) => {
     console.log(`animals[${i}] : ${animal}`)
   })
 
   인자값이 3개라면 (, 인덱스, 배열)
   aniamls.forEach((animal, i, a) => {
     console.log(`[${a}] [${i}] : ${animal}`)
   })

 

배열과 배열을 합치는 방법 2가지

 
   배열과 배열을 합치는 방법 :contcat( )
 
   let vegitable = ["양상추", "토마토", "오이"];
   let meat = ["불고기"];
   let meatBurger = vegitable.concat(meat, "빵");
   // meatBurger
   // (5) ['양상추', '토마토', '오이', '불고기', '빵']

   let meatBurger2 = meat.concat("빵", vegitable);
   // meatBurger2
   // (5) ['불고기', '빵', '양상추', '토마토', '오이']
 
 
   배열과 배열을 합치는 방법 : 전개연산자[...]
 
   let vegitable = ["양상추", "토마토", "오이"];
   let cheese = ["모짜렐라", "슈레드"];
   let cheeseBurger = [...vegitable, ...cheese];

   cheeseBurger
   (5) ['양상추', '토마토', '오이', '모짜렐라', '슈레드']
 

 

배열의 요소를 정렬하는 메서드 2가지

 
   역순 : reverse()
   크기 : sort()

   let numbers = [6, 9, 3, 21, 18];
   numbers.reverse();
 
   numbers
   (5) [18, 21, 3, 9, 6]

   let week = ["sun", "mon", "tue"];  
   let values = [5, 20, 3, 11, 4, 15];
 
   week.sort();
   (3) ['mon', 'sun', 'tue']
   values.sort();
   (6) [11, 15, 20, 3, 4, 5//알파벳순, 숫자는 앞자리만 보고 판단
 
   values.sort(function(a,b){
     if(a>b) return 1;
     if(a<b) return -1;
     if(a==0) return 0;
   });
   (6) [3, 4, 5, 11, 15, 20]
 
   values.sort(function(a,b){
     return a - b;
   });
   (6) [3, 4, 5, 11, 15, 20] //오름차순 정렬하고싶다 하면 이렇게, 외우기
 

 

배열요소에서  값을 추가하거나 제거하는 메서드

 
   pop(): 마지막 값을 제거하는 메서드
   push(): 마지막 값을 추가하는 메서드

   shift(): 앞에 값을 제거하는 메서드
   unshift(): 앞에 값을 추가하는 메서드
 

 

특정위치에 요소를 추가하거나 제거하는 메서드

 
   splice(1) : 1번부터 끝까지 요소를 모두선택해서 제거
   splice(1,2) : 1번부터 2번갯수만큼 요소를 모두선택해서 제거
   splice(1,2, " ") : 1번부터 2 앞에 " " 추가
 
   let subject = ["html", "css", "java", "react", "typescript"];
 
   subject.splice(2);
 
   subject;
   (2) ['html', 'css']
 
 
   slice(1,2) : 1부터 2 직전까지 선택
   slice(1) : 1 부터 끝까지 요소를 모두 선택
 
   let subject = ["html", "css", "java", "react", "typescript"];
 
   subject.splice(2);
   (3) ['java', 'react', 'typescript']
   subject;
   (2) ['html', 'css']

   *splice 원본 배열 수정합니다.
   *slice 원본 배열을 수정하지 않습니다.
 
   let colors = ["red", "green", "blue", "white","black"];
   let color1 = colors.slice(2);
 
   color1;
   (3) ['blue', 'white', 'black']
   colors;
   (5) ['red', 'green', 'blue', 'white', 'black']
 
   let color2 = colors.splice(2);
  
   color2;
   (3) ['blue', 'white', 'black']
   colors;
   (2) ['red', 'green']