JS (27) - 배열

최조니·2022년 7월 27일
0

JavaScript

목록 보기
24/36

27.1 배열이란 ?

배열
여러 개의 값을 순차적으로 나열한 자료구조

  • 요소 : 배열이 가지고 있는 값
  • 인덱스 : 배열의 요소의 위치를 나타내는 0 이상의 정수 (0부터 시작)
  • 요소에 접근하기 위해서는 대괄호 표기법 사용

  • 배열은 요소의 개수 (배열의 길이)를 나타내는 length 프로퍼티를 가짐

  • 배열은 인덱스와 length 프로퍼티를 갖기 때문에 for문을 통해 순차적으로 요소에 접근할 수 있음

  • 자바스크립트에서 배열은 객체 타입

const arr = ['apple', 'banana', 'orange']
typeof arr		// object
  • 객체와 배열의 차이점
구분객체배열
구조프로퍼티 키와 프로퍼티 값인덱스와 요소
값의 참조프로퍼티 키인덱스
값의 순서XO
length 프로퍼티XO

27.2 자바스크립트 배열

자바스크립트의 배열은 일반적인 배열의 동작을 흉내 낸 특수한 객체

  • 자바스크립트 배열은 인덱스로 배열 요소에 접근하는 경우 일반 배열보다 느리지만,
    요소를 삽입·삭제하는 경우 일반 배열 보다 빠르다.

27.3 length 프로퍼티와 희소 배열

length 프로퍼티
요소의 개수 (배열의 길이)를 나타내는 0 이상의 정수

  • 빈 배열의 경우 length 프로퍼티 : 0
    빈 배열이 아닌 경우 가장 큰 인덱스 + 1

  • length 프로퍼티 값은 배열에 요소를 추가하거나 삭제하면 자동으로 갱신

  • length 프로퍼티 값을 임의의 숫자 값으로 명시적으로 할당할 수 있음

    • 현재 length 프로퍼티 값보다 작은 숫자 값을 할당하면 배열의 길이가 줄어듬
    • 현재 length 프로퍼티 값보다 큰 숫자를 할당하면, length 프로퍼티 값은 변경되지만 실제로 배열의 길이가 늘어나진 않음

희소 배열
배열의 요소가 연속적으로 위치하지 않고 일부가 비어 있는 배열

const sparse = [, 2, , 4];

console.log(sparse.length);	// 4
console.log(sparse);		// [empty, 2, empty, 4]

console.log(Object.getOwnPropertyDescriptors(sparse));
/*
'1': { value: 2, writable: true, enumberable: true, configurable: true },
'3': { value: 4, writable: true, enumberable: true, configurable: true },
length: { value: 4, writable: true, enumberable: false, configurable: false }
*/
  • 희소 배열은 length와 배열 요소의 개수가 일치하지 않음
    • 희소 배열의 length는 희소 배열의 실제 요소 개수보다 언제나 큼

→ 배열에는 같은 타입의 요소를 연속적으로 위치시키는 것이 최선


27.4 배열 생성


27.5 배열 요소의 참조


27.6 배열 요소의 추가와 갱신


27.7 배열 요소의 삭제


27.8 배열 메서드


27.9 배열 고차 함수


profile
Hello zoni-World ! (◍ᐡ₃ᐡ◍)

0개의 댓글