S1_U8_CH1. 배열

Judevv·2023년 5월 1일
0

Chapter 1. 배열

학습 목표

  • 배열에서 특정 인덱스(index)의 요소(element)를 조회하거나, 변경할 수 있다.
  • length 속성을 이용하여 배열의 길이를 조회할 수 있다.
  • 배열의 요소가 배열인 이중 배열을 이해하고, 이중 배열의 요소를 조회하거나 변경할 수 있다.
  • 배열의 각 요소에 대하여, 반복하는 코드를 실행시킬 수 있다.
  • 배열에서 사용되는 다양한 메서드를 알고 사용할 수 있다.
    • split(), join(), slice(), splice(), Array.isArray(), push(), unshift(), pop(), shift(), indexOf(), includes()

1-1. 배열의 기초

  • 배열은 순서가 있는 값
    • 순서는 인덱스라고 부르며, 1이 아닌 0부터 번호를 매김
    • 대괄호를 이용해서 배열을 만들고, 각각의 엘리먼트는 쉼표로 구분
    • 값은 인덱스를 이용해 접근
let myNumber = [73, 98, 86, 61, 96];

// myNumber 배열의 3번째 인덱스 조회
myNumber[3]; //61
// myNumber 배열의 3번째 인덱스 값을 변경
myNumber[3] = 200;
myNumber[3]; // 200
  • 배열로 할 수 있는 것들

    • 온점(dot)를 이용해서 변수가 가지고 있는 속성(property)에 접근할 수 있음

      • 길이 : .length
    • 온점(dot)를 이용해서 관련된 명령어(메서드)를 실행할 수 있음

      • 함수를 실행하듯 괄호를 열고 닫는 형태로 실행
      • 배열의 끝에 값을 추가 : .push
      • 배열의 마지막 값을 삭제 : .pop
  • 이중 배열

    • 배열이 중첩 되어 있음
     let myNumber = [[13, 30], [73, 8], [44, 17]]
    • myNumber의 0번째 인덱스 값은 [13, 30]
    • 0번째 인덱스 값의 0번째 인덱스 값은 13
    • 표현은 myNumber[0][0]

1-2. 배열의 반복

  • 반복문을 이용해 배열의 요소를 한번씩 출력하려면?
    • 조건

      • 숫자(n)은 0부터 시작
      • 숫자(n)을 배열의 길이보다 작을 때까지 반복
      • 숫자(n)은 1씩 증가
      for (let n = 0; n < myNum.length; n++) {
        console.log(myNum[n])
      }

1-3. 배열 메서드

  • Array.isArray()
    • 배열인지 아닌지 판별
    • 불리언 타입으로 나옴
  • push(), pop()
    • push()는 배열의 마지막에 새로운 요소를 추가 / 배열의 새로운 길이 반환
    • pop()는 배열의 마지막 요소를 제거 / 그 요소를 반환
  • indexOf(), includes()
    • indexOf()는 배열에서 지정된 요소를 찾을 수 있는 첫번째 인덱스 반환 / 존재하지 않으면 -1 반환
    • includes()는 배열이 특정 요소를 포함하고 있는지 판별
  • splice()
    • splice()는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용 변경
  • slice(), split()
    • slice()는 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환 / 원본 배열은 바뀌지 않음
    • split()은 문자열을 나누고, 문자열을 지정한 구분자를 기준으로 나누어 배열 형태로 반환
  • shift(), unshift()
    • shift()는 배열의 첫번째 요소를 제거하고, 제거된 요소 반환 / 배열의 길이를 변하게 함
    • unshift()는 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이 반환
  • join() (**)
    • join()은 배열의 모든 요소를 하나의 문자열로 만듬
profile
감성있는 개발자를 꿈꿔요

0개의 댓글