Home 배열 Array
Post
X

배열 Array

Array에 대해 알아보자.


Array 배열

자바스크립트에서 배열은 이름과 인덱스로 참조되는 정렬된 값의 집합입니다.

배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 합니다.

  • 같은 배열에 있는 배열 요소끼리의 타입이 서로 다를 수도 있습니다.

  • 특정 배열 요소가 비어 있을 수도 있습니다.

  • 자바스크립트에서 배열은 Array 객체로 다뤄집니다.

생성

  • 배열 리터럴 대괄호([ ])

    가장 성능이 좋은 배열 생성 방법입니다.

    1
    2
    
    let a = [];
    let b = [1, 2, 3];
    
  • Array 생성자 함수

    인수로 length 값을 전달받아 해당 길이의 배열을 생성합니다.

    1
    
    let a = new Array(10);
    
  • Array.of()

    인자의 수나 유형에 관계없이 가변 인자를 갖는 새 Array 인스턴스를 만듭니다.

    • Array.of()와 Array 생성자의 차이

      Array.of(7)은 하나의 요소 7을 가진 배열을 생성
      Array(7)은 length 속성이 7인 빈 배열을 생성합니다.

    Array.of(element0[, element1[, …[, elementN]]])

    • elementN : 배열에 추가할 요소
  • Array.from()

    유사 배열 객체(array-like object)반복 가능한 객체(iterable object)얕게 복사해 새로운 Array 객체를 만듭니다.

    Array.from(arrayLike[, mapFn[, thisArg]])

    • arrayLike : 배열로 변환할 유사 배열 객체나 반복 가능한 객체
    • mapFn : 배열의 모든 요소에 대해 호출할 맵핑 함수
    • thisArg : mapFn 실행 시에 this로 사용할 값

주요 프로퍼티

  • Array.prototype.length

    배열의 길이를 반환합니다.


주요 메서드

참고 글 : MDN_Array


데이터 삽입

새로운 항목을 자료 구조 내에 추가하는 것

  • Array.prototype.push(element1[, …[, elementN]])

    새로운 요소를 배열의 끝에 추가하고, 배열의 새로운 길이를 반환합니다.

    • element N : 추가할 요소
  • Array.prototype.unshift(element1[, …[, elementN]])

    새로운 요소를 배열의 맨 앞쪽에 추가하고, 배열의 새로운 길이를 반환합니다.

    • element N : 추가할 요소

데이터 삭제

  • Array.prototype.pop()

    배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.

  • Array.prototype.shift()

    배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다.


데이터 접근

인덱스를 사용해 메모리의 주소로부터 직접 값을 얻습니다.

  • Array[i]

  • Array.prototype.at(index)

    인덱스 값을 받아, 배열에서 배열 요소를 반환합니다. (음수 값 사용 가능)

    • index : 가져올 요소의 인덱스 값

데이터 순회

  • Array.prototype.reduce(accumulator[, currentValue[, currentIndex[, array]])[, initialValue])

    배열의 각 요소에 대해 주어진 함수를 실행하고, 하나의 결과값을 반환합니다.

    • accumulator : callback의 이전 반환값
    • currentValue : 처리할 현재 요소
    • currentIndex : 처리할 현재 요소의 인덱스 값
    • array : reduce()를 호출한 배열
    • initialValue : 첫 번째 인수에 제공하는 값 (defalut는 배열의 첫 번째 요소)
    1
    2
    3
    
    [0, 1, 2, 3, 4].reduce((accumulator, currentValue, currentIndex, array) => {
      return accumulator + currentValue;
    }); // 10
    
  • Array.prototype.map(callbackFn, thisArg)

    배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

  • Array.prototype.every(callbackFn, thisArg)

    배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다.

    결과에 따라 boolean 값을 반환합니다.

  • Array.prototype.some(callbackFn, thisArg)

    배열 안의 요소 중 적어도 하나라도 주어진 판별 함수를 통과하는지 테스트합니다.

    결과에 따라 boolean 값을 반환합니다.

  • Array.prototype.filter(callbackFn, thisArg)

    주어진 판별 함수를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.


그 외

  • Array.prototype.splice(start, deleteCount, item1, …, itemN)

    배열의 기존 요소를 삭제 또는 변경하거나 새 요소를 추가하여 배열의 내용을 변경합니다.

    제거한 요소를 담은 배열을 반환합니다.

    • start : 배열의 변경을 시작할 인덱스
    • deleteCount : 배열에서 제거할 요소의 수
    • itemN : 배열에 추가할 요소
  • Array.prototype.slice(begin, end)

    배열의 begin부터 end전까지에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다.

    원본 배열은 바뀌지 않습니다.

    • begin : 0을 시작으로 하는 추출 시작점에 대한 인덱스
    • end : 추출을 종료 할 기준 인덱스 (end는 미포함)
  • Array.prototype.concat(value1, …, valueN)

    인자로 주어진 배열이나 값들을 기존 배열의 맨 뒤에 합쳐서 새 배열을 반환합니다.

    • valueN : 새 배열로 연결할 배열 및/또는 값
  • Array.prototype.join(separator)

    배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.

    • separator : 배열의 각 요소를 구분할 문자열
  • Array.prototype.reverse()

    배열의 순서를 반전합니다.

  • Array.prototype.sort(compareFunction)

    배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다.

    기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

    • compareFunction : 정렬 순서를 정의하는 함수

    compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 정렬합니다.


반복문으로 배열 접근

  • for (변수;조건;수정) , while

  • for (let x of Array)

    배열의 값을 x에 하나씩 호출합니다.

  • forEach(callback(element, index, array)[, thisArg])

    주어진 콜백함수를 배열 요소 각각에 대해 실행합니다.

    for문과 다르게 break, continue를 사용할 수 없습니다.

    • element : 처리할 현재 요소
    • index : 현재 요소의 인덱스
    • array : 호출한 배열
    • thisArg : callback에서 this로 사용할 값
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.