배열은 특수한 형태의 객체로, 순서가 있는 자료를 저장하고 관리하는 용도에 최적화된 자료구조입니다.
// 대괄호 (가장 많이 쓰이는 방법임)let arr = [item1, item2...];// new Array (잘 쓰이지 않음)let arr = new Array(item1, item2...);
new Array(number)
을 호출하면 길이가 number
인 배열이 만들어지는데, 이 때 요소는 비어있습니다.length
프로퍼티는 배열의 길이를 나타내줍니다. 정확히는 숫자형 인덱스 중 가장 큰 값에 1을 더한 값입니다. 배열 메서드는 length
프로퍼티를 자동으로 조정해줍니다.length
값을 수동으로 줄이면 배열 끝이 잘립니다.다음 연산을 사용하면 배열을 데큐처럼 사용할 수 있습니다.
push(...items)
– items
를 배열 끝에 더해줍니다.pop()
– 배열 끝 요소를 제거하고, 제거한 요소를 반환합니다.shift()
– 배열 처음 요소를 제거하고, 제거한 요소를 반환합니다.unshift(...items)
– items
를 배열 처음에 더해줍니다.아래 방법을 사용하면 모든 요소를 대상으로 반복 작업을 할 수 있습니다.
for (let i=0; i<arr.length; i++)
– 가장 빠른 방법이고 오래된 브라우저와도 호환됩니다.for (let item of arr)
– 배열 요소에만 사용되는 모던한 문법입니다.for (let i in arr)
– 배열엔 절대 사용하지 마세요./* 배열 요소의 자료형엔 제약이 없음 */
// 요소에 여러 가지 자료형이 섞여 있습니다.
let arr = [ '사과', { name: '이보라' }, true, function checkHello() { console.log('안녕하세요.'); } ];
// 인덱스가 1인 요소(객체)의 name 프로퍼티를 출력합니다.
console.log( arr[1].name ); // 이보라
// 인덱스가 3인 요소(함수)를 실행합니다.
arr[3](); // 안녕하세요.
console.log(arr[3]); // [Function (anonymous)]
/* 배열 - push / pop / shift / unshift */
let fruits1 = ["사과", "오렌지", "배"];
console.log( fruits1.shift() ); // 배열에서 "사과"를 제거하고 제거된 요소를 얼럿창에 띄웁니다.
console.log( fruits1 ); // 오렌지,배
let fruits2 = ["오렌지", "배"];
fruits2.unshift('사과');
console.log( fruits2 ); // 사과,오렌지,배
파이썬, Java의 배열과 비슷해서 별로 어렵게 느껴지지는 않았다.
그래도, 자바스크립트의 배열에서 좋게 느껴진 것은 shift와 unshift 메서드이다. 만약, 파이썬이나 Java 같았으면 라이브러리를 호출해서 처리했어야 했는데… 이것만큼은 좋은 기능인 것 같다.