배열이란 무엇입니까?
여러 값이 일렬로 배열된 데이터 구조입니다.
데이터 구조는 따로 정리하고, 이 글에서는 자바스크립트 배열의 속성, 생성, 메서드를 정리하고자 합니다.
JavaScript의 배열은 데이터 구조의 배열과 다릅니다.
일반적인 배열은 각 요소가 동일한 데이터 크기를 가지며 간격 없이 연속되는 일련의 요소입니다. 조밀한 배열수단
이 배열은 인덱스를 통해 요소에 효율적으로 액세스할 수 있다는 이점이 있습니다.
반면 JavaScript의 배열은 배열처럼 구현된 객체이며 JavaScript에서 사용할 수 있는 모든 값을 저장할 수 있습니다.
선언된 배열에 저장된 데이터는 크기가 같지 않아도 상관없습니다.
또한 배열의 요소는 연속적이지 않아야 합니다. 그만큼 희소 배열그것은 말한다.
고밀도 배열의 경우 인덱스를 통해 요소에 쉽게 접근할 수 있지만 요소를 삽입하거나 삭제할 때 연속성을 유지하기 위해 요소를 이동해야 합니다.
희소 배열인 JavaScript의 경우 요소를 삽입하고 삭제하는 것이 이 점에서 효율적입니다.
//희소배열
const array = (, 2, 3, , 5);
console.log(array.length); // 5
console.log(array); // (empty, 2, 3, empty, 5);
위의 배열에서 인덱스 0과 3에는 요소가 없습니다.
아래와 같이 배열에서 요소를 추가하거나 제거할 수도 있습니다.
배열의 length 속성을 이용하여 배열의 길이를 할당할 때.
const array = (1, 2, 3, 4, 5);
//length프로퍼티에 요소 길이(5)보다 작은 값을 할당.
array.length = 3;
console.log(array); // (1, 2, 3)
배열의 요소가 길이에 의해 잘렸습니다. // 배열의 요소 4와 5를 삭제합니다.
const array = (1, 2, 3);
// length프로퍼티를 이용해 요소 길이(3)보다 큰 값을 할당.
array.length = 5;
console.log(array.length); // 5
console.log(array) // (1, 2, 3, empty*2)
위의 경우 배열의 길이는 5로 변경되지만 배열에 추가되는 요소는 없습니다. 이러한 배열을 희소 배열이라고 합니다.
어레이 생성
배열 리터럴
배열을 만드는 가장 일반적인 방법은 다음과 같습니다. 배열 리터럴사용될 예정이다
배열 리터럴은 만들 요소를 지정합니다. ( ) 대괄호요소를 바인딩 반점별도로 작성
const arr = ( 1, 2, 3);
대괄호 안에 요소를 추가하지 않으면 배열 길이가 0인 빈 배열이 생성됩니다.
const arr = ();
console.log(arr.length); // 0
배열 생성자 함수
배열 생성자 함수를 사용하여 배열을 만들 수도 있습니다.
const arr = new Array(5);
//하나의 숫자를 인수로 전달할 경우 length프로퍼티 값이 인수인 배열 생성.
console.log(arr); // (empty * 5)
console.log(arr.length) // 5
const arr = new Array();
//전달된 인수가 없는 경우 빈 배열 생성
console.log(arr) // ();
const arr = new Array(1, 2, 3);
//전달된 인수가 2개 이상이거나 숫자가 아닌경우 인수를 요소로 갖는 배열 생성
console.log(arr); // (1, 2, 3)
const arr1 = new Array({});
console.log(arr1) // ({})
배열 요소 참조
대괄호(())는 배열의 요소를 참조하는 데 사용됩니다. 인덱스는 대괄호 안에 사용되며 인덱스 대신 정수로 평가되는 표현식을 사용할 수 있습니다.
인덱스는 값을 참조할 수 있다는 점에서 객체의 속성 키처럼 작동합니다.
인덱스는 0부터 시작합니다.
const arr= (1, 2);
console.log(arr.length); // 2 (배열의 길이)
console.log(arr(0)); // 1 (0번째 인덱스의 값)
배열 요소 추가 및 업데이트
객체에 속성을 추가할 수 있는 것처럼 배열에 요소를 동적으로 추가할 수 있습니다.
const arr = (0);
//배열에 요소 추가
arr(1) = 1;
console.log(arr); // (0, 1)
console.log(arr.length); //2
JavaScript 배열 속성에서 설명한 것처럼 길이 속성보다 큰 인덱스를 가진 새 요소는 희소 배열이 됩니다.
주의하여 사용하십시오!
const arr = (0, 1);
arr(3) = 3;
//인덱스 2에는 요소가 없다.
console.log(arr); // (0, 1, empty, 3)
배열 요소 삭제
배열은 객체이므로 delete 연산자를 사용하여 삭제할 수 있습니다.
삭제 연산자를 사용하면 객체 속성이 삭제되므로 배열이 희소 배열이 되고 길이가 변경되지 않습니다.
별도의 배열 메서드를 사용하여 배열에서 요소를 삭제해 보겠습니다.
const arr = (0, 1, 2, 3);
delete arr(1);
console.log(arr); //(0, empty, 2, 3)
console.log(arr.length); // 4
배열의 기본 개념을 정리했습니다.
배열 방법과 고차 배열 함수는 별도로 설명합니다.