[배열] - 희소 배열, 다차원 배열

Donggu(oo)·2022년 10월 26일
0

JavaScript

목록 보기
28/49
post-thumbnail

1. length 프로퍼티와 희소 배열


  • length 프로퍼티 값은 요소의 개수, 즉 배열의 길이를 바탕으로 결정되지만 임의의 숫자 값을 명시적으로 할당할 수도 있다.
  • 현재 length 프로퍼티 값보다 작은 숫자 값을 할당하면 배열의 길이가 줄어든다.
const arr = [1, 2, 3, 4, 5];
// 현재 length 프로퍼티 값인 5보다 작은 숫자 값 3을 length 프로퍼티에 할당
arr.length = 3;
// 배열의 길이가 5에서 3으로 줄어든다.
console.log(arr);  // [1, 2, 3]
  • 반대로 현재 length 프로퍼티 값보다 큰 숫자 값을 할당하는 경우, 이때 length 프로퍼티 값은 변경되지만 실제 배열의 길이가 늘어나지는 않는다.
  • 아래 예제에서 empty x 2empty x 4는 실제로 추가된 배열의 요소가 아니다. 즉, arr[1]과 arr[2]에는 값이 존재하지 않는 것이다.
const arr = [1];
// 현재 length 프로퍼티 값인 1보다 큰 숫자 값 3을 length 프로퍼티에 할당
arr.length = 3;
// length 프로퍼티 값은 변경되지만 실제로 길이가 늘어나지는 않는다.
console.log(arr.length);  // 3
console.log(arr);  // [1, empty x 2]

const arr = [1];
// 현재 length 프로퍼티 값인 1보다 큰 숫자 값 5를 length 프로퍼티에 할당
arr.length = 5;
// length 프로퍼티 값은 변경되지만 실제로 길이가 늘어나지는 않는다.
console.log(arr.length);  // 5
console.log(arr);  // [1, empty x 4]
  • 희소 배열이란 배열에 속한 요소의 위치가 연속적이지 않은 배열을 말한다.
  • 희소 배열의 경우 배열의 length 프로퍼티 값보다 배열 요소의 개수가 항상 작다.
  • 배열을 생성할 경우에는 희소 배열을 생성하지 않도록 주의해야 한다.
const sparse = [, 2, , 4];
// 최소 배열의 length 프로퍼티 값은 요소의 개수와 일치하지 않는다.
console.log(sparse.length);  // 4
// 배열 sparse에는 인덱스가 0, 2인 요소가 존재하지 않는다.
console.log(sparse);  // [empty, 2, empty, 4]

const arr = [];
arr[99] = "JavaScript";
// 100번째 요소를 삽입했기 때문에 배열의 길이는 0에서 100으로 늘어남
console.log(arr.length);  // 100

2. 다차원 배열


  • 다차원 배열(multidimensional array)이란 배열 요소가 또 다른 배열인 것을 말한다.
  • 다차원 배열은 행렬을 저장하는 용도로 사용된다.
let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

console.log(matrix[1][1]);  // 5

0개의 댓글