let arr = [1,2,3,4];
console.log(arr); //[ 1, 2, 3, 4 ]
arr = [1,"아이스아메리카노", {total : 90}];
console.log(arr); // [ 1, '아이스아메리카노', { total: 90 } ]
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits[0]); // 'apple'
console.log(fruits[1]); // 'banana'
console.log(fruits[2]); // 'orange'
배열은 동일한 자료형의 데이터를 순서대로 저장하는데 유용합니다. 배열은 크기를 동적으로 조절할 수 있으며, 다양한 메서드를 제공하여 배열의 요소를 추가, 제거, 정렬, 검색하는 등 다양한 작업을 수행할 수 있습니다.
자바스크립트에서 배열은 객체(Objedct)의 일종으로, 다양한 프로퍼티와 메서드를 가지고 있습니다. 이러한 특징으로 인해 배열은 다른 자로구조와 결합하여 사용될 수도 있습니다. 예를 들어, 객체를 요소로 가지는 배열, 배열을 요소로 가지는 배열 등을 만들어서 사용할 수 있습니다.
단점
배열(Array)은 일반적으로 연속된 인덱스를 가진 데이터를 저장하기 위해 사용됩니다. 이때, 배열의 인덱스가 모두 채워져 있는 경우를 "밀집 배열(Dense Array)"이라고 하고, 그렇지 않은 경우를 "희소 배열(Sparse Array)"이라고 합니다.
밀집 배열은 각 인덱스마다 값이 존재하기 때문에 메모리 공간을 효율적으로 사용할 수 있습니다. 이와 달리, 희소 배열은 일부 인덱스만 값이 존재하기 때문에 메모리 공간을 불필요하게 사용하게 됩니다. 예를 들어, 다음과 같은 배열이 있다고 가정해보겠습니다.
const denseArray = [1, 2, 3, 4, 5];
const sparseArray = [1, 2, , , 5];
밀집 배열과 희소 배열은 메모리 공간 외에도 성능 차이를 가지고 있습니다. 일반적으로 밀집 배열은 인덱스를 이용한 접근이 빠르고, 반면에 희소 배열은 순회(Iteration)를 이용한 접근이 빠르게 수행됩니다. 이는 희소 배열에서는 비어있는 인덱스를 건너뛰어야 하기 때문입니다.
따라서, 배열의 크기와 요소들의 특성에 따라 밀집 배열과 희소 배열 중 어떤 것을 선택할 것인지를 고려해야 합니다. 예를 들어, 특정 요소의 유무가 불확실하거나 크기가 큰 배열의 경우 희소 배열을 사용하는 것이 메모리를 절약할 수 있습니다. 반면에, 인덱스를 기반으로 빠른 접근이 필요한 경우에는 밀집 배열을 사용하는 것이 더 효율적일 수 있습니다.
JavaScript 배열과 기존 배열과 비교 시 장/단점
장점
단점
let arr = [1,2,3,4];
console.log(arr);// [ 1, 2, 3, 4 ]
for(const [key, value] of arr.entries()){
console.log(`key : ${key}, value : ${value} `);
}
// key : 0, value : 1
// key : 1, value : 2
// key : 2, value : 3
// key : 3, value : 4
arr.push('데이터')
console.log(arr); //[ 1, 2, 3, 4, '데이터' ]
arr.pop();
console.log(arr); //[ 1, 2, 3, 4 ]
arr.push('데이터');
console.log(arr);// [ 1, 2, 3, 4, '데이터' ]
arr.shift();
console.log(arr); // [ 2, 3, 4, '데이터' ]
console.log(arr.indexOf('데이터')); // 3
let arr2 = arr.filter((data) => data >1);
console.log(arr2); //[ 2, 3, 4 ]
let arr3 = arr.concat([5,6,7]);
console.log(arr3); // [ 2, 3, 4, '데이터', 5, 6, 7 ]
console.log(arr); // [ 2, 3, 4, '데이터' ]
arr.pop();
console.log(arr); // [ 2, 3, 4 ]
arr = arr.map((data) => data/2);
console.log(arr); // [ 1, 1.5, 2 ]