dolog

2024.03.20 자료구조 - 자바스크립트 배열 본문

알고리즘

2024.03.20 자료구조 - 자바스크립트 배열

dokite 2024. 3. 20. 17:50

1. 배열(Array)

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

- 배열이 가지고 있는 값을 요소(element)라 부르고 index를 통해 접근할 수 있다. ➡️ 수행 시간 : O(1)

- 요소의 개수(= 배열의 길이)를 나타내는 length 프로퍼티를 가지고 있다.

- 컴퓨터의 메인 메모리에서 배열의 공간은 연속적으로 할당된다.

- 캐시 히트 가능성(요청한 데이터가 캐시에 존재하는 경우)이 높고, 조회가 빠르지만 배열의 크기를 미리 지정해야 하는 것이 일반적이므로 데이터 추가, 삭제에 한계가 존재한다.

- 자바스크립트의 배열은 동적 배열로 배열의 용량이 가득차면 자동으로 크기를 증가한다.

- 배열 또는 스택(stack)의 기능이 필요할 때 사용할 수 있다(큐(queue)의 기능은 X)

 

// 1차원 배열 생성
const arrA = [1, 2, 3];

const arrB = new Array();
arrB.push(1);
arrB.push(2);
arrB.push(3);

const arrC = Array.from({ length: 5 }, () => 7); 
console.log(arrC);
// [7, 7, 7, 7, 7]

// 2차원 배열 생성
const matrixA = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]];

const matrixB = Array.from(Array(4), () => new Array(5));
console.log(matrixB);
/*
[
  [ <5 empty items> ],
  [ <5 empty items> ],
  [ <5 empty items> ],
  [ <5 empty items> ]
]
*/

const matrixC = new Array(3);

for(let i = 0 ; i < matrixC.length ; i++) {
	matrixC[i] = Array.from({ length: 4 }, (_, index) => i * 4 + index);
}

console.log(matrixC);
/*
[
    [ 0, 1, 2, 3 ], 
    [ 4, 5, 6, 7 ], 
    [ 8, 9, 10, 11 ]
]
*/