배열

keis·2019년 12월 6일

JavaScript

목록 보기
5/8

배열 (Array)

  • 해당 항목의 offset을 계산할 수 있는 정수를 통해 각 항목들을 접근할 수 있는 연속적인 메모리 할당
  • 자바스크립트에서의 배열 : 배열의 특성을 지닌 객체
    * typeof [] => "object"
  • 타입이 고정적이지 않음 (같은 배열에 있는 원소의 값이 서로 다를 수 있다)
  • 32비트 인덱스를 사용한다
  • 크기가 동적이다
  • 배열을 생성하거나 크기가 변경되어 다시 할당을 하더라도 배열 크기를 다시 선언할 필요가 없다
  • 모든 배열은 객체 (배열이 객체의 프로토타입으로부터 속성들을 상속 받은 객체이기 때문)

배열 만드는 방법

  • 배열리터럴
  • Array() 생성자
[1, 2, 3]           => [1, 2, 3]
new Array(1, 2, 3)  => [1, 2, 3]
new Array(3)        => [undefined, undefined, undefined]

희소배열

배열에 속한 원소의 위치가 연속적이지 않은 배열

length 속성의 값은 원소의 개수보다 항상 큼

보통 배열보다 일반적으로 느리고, 메모리를 많이 사용하고, 원소를 찾는 시간이 오래 걸림

배열 순회하기

for(var i=0; len = keys.length;i<len;i++)
{
    if(!keys[i])
            continue; // null, undefined 빈 원소일 때 건너 뜀
} 

for / in 루프는 상속 받은 속성 이름까지 넘겨준다

(원하지 않은 속성을 제외하고 추가된 속성만 테스트하는 경우가 아니라면 사용하지 말아야 한다)

매소드(Methods)

  • 삽입/삭제
    push
    unshift
    pop
    shift
  • 배열 편집
    concat
    slice
    * splice : 주의 원본 배열이 변경됨
  • 정렬
    sort
    reverse
  • 반복
    forEach
    filter
    map
    reduce
    every
    some
  • 기타
    isArray
    indexOf
    lastIndexOf
    join

0개의 댓글