Frontend/JavaScript

JavaScript Array

개발자의 첫 걸음 2025. 11. 13. 10:00

안녕하세요. 오늘은 자바스크립트 배열(Array)에 대해 알아볼게요.

 

 

 

배열(Array)

 

배열은 여러 개의 데이터를 하나의 변수로 순서대로 저장할 수 있는 자료 구조예요.

 

자바스크립트의 배열은 다양한 타입의 데이터를 한 배열 안에 저장할 수 있고,

 

배열의 크기가 고정되지 않아 동적으로 변경이 가능해요.

 

+) 인덱스(index) 0부터 시작하고, 각 데이터를 요소(element)라고 불러요

 

 

 

배열 생성 방법

 

1. 리터럴(Literal) 방식

 

리터럴 방식은 가장 일반적으로 사용하는 방식이에요.

 

대괄호[] 안에 요소들을 쉼표(,)로 구분해 나열하고, 장점은 간결하고 직관적이에요.

let fruits = ['사과', '오렌지', '망고'];
let numbers = [1, 2, 3, 4, 5];
let mixed = [1, '문자', true, undefined, null, [1, 2, 3]];

 

 

2. Array 생성자 방식

 

newArray()를 사용해 배열을 생성할 수도 있어요.

let arr1 = new Array(3); // 크기가 3인 빈 배열 생성
let arr2 = new Array('사과', '오렌지', '망고'); // 요소를 직접 지정

// new Array(3)은 [empty × 3] 형태로 비어 있는 배열을 생성합니다.

 

 

3. 배열 요소 접근 및 수정

 

배열의 각 요소는 인덱스(index)로 접근해요.

const sports = ['축구', '야구', '농구'];

console.log(sports[0]); // '축구'
console.log(sports[2]); // '농구'

// 요소 수정
sports[2] = 'basketball';
console.log(sports); // ['축구', '야구', 'basketball']

const로 선언된 배열이라도 배열 자체 재할당은 불가하지만, 배열 내부 요소의 값 변경은 가능해요.

 

 

4. 배열의 길이 확인 및 변경

 

length 속성을 이용해 배열의 길이를 확인할 수 있어요.

console.log(sports.length); // 3

sports.length = 6;
console.log(sports); 
// [ '축구', '야구', 'basketball', <3 empty items> ]

JS 배열은 동적 배열이므로, length를 변경하면 빈 공간이 자동 생성돼요.

 

 

5. 배열 탐색 함수

 

1) indexOf(요소): 처음으로 등정하는 인덱스 번호 반환

let snacks = ['칸쵸', '초코송이', '포테토칩', '초코송이'];
console.log(snacks.indexOf('초코송이')); // 1
console.log(snacks.indexOf('딸기송이')); // -1 (없음)

 

2) lastIndexOf(요소): 뒤에서부터 탐색해 첫 번째 인덱스 반환

console.log(snacks.lastIndexOf('초코송이')); // 3

 

3) includes(요소): 해당 요소가 존재하면 true, 없으면 false

console.log(snacks.includes('포테토칩')); // true

 

 

6. 배열 조작 메서드

(1) push() — 끝에 요소 추가
(2) pop() — 끝에서 요소 제거
(3) unshift() — 앞에 요소 추가
(4) shift() — 앞에서 요소 제거

let fruits = ['Apple', 'Banana'];

fruits.push('Cherry');   // ['Apple', 'Banana', 'Cherry']
fruits.pop();            // ['Apple', 'Banana']

fruits.unshift('Mango'); // ['Mango', 'Apple', 'Banana']
fruits.shift();          // ['Apple', 'Banana']

(5) splice(시작인덱스, 삭제개수, 추가요소...)
추가: 삭제 개수를 0으로 주면 요소 추가
삭제: 삭제 개수를 지정하면 해당 개수만큼 요소 제거

let fruits2 = ['mango', 'orange', 'Banana'];

// 추가
fruits2.splice(1, 0, 'Strawberry', 'Coconut');
console.log(fruits2);
// ['mango', 'Strawberry', 'Coconut', 'orange', 'Banana']

// 삭제
let removed = fruits2.splice(1, 2);
console.log(removed); // ['Strawberry', 'Coconut']

push와 unshift는 수정된 배열의 길이를 반환, pop과 shift는 삭제된 요소를 반환해요.

 

 

7. 배열 정렬

(1) sort() — 오름차순 정렬
(2) reverse() — 내림차순 정렬

let fruits3 = ['Banana', 'mango', 'orange'];
console.log(fruits3.sort());   // ['Banana', 'mango', 'orange']
console.log(fruits3.reverse()); // ['orange', 'mango', 'Banana']

sort()는 문자 기준으로 정렬되므로, 숫자를 정렬할 땐 비교 함수를 추가해야 해요.

 

 

8. 배열 ↔ 문자열 변환

 

1) join(구분자): 배열을 문자열로 결합

let fruitValues = ['사과', '바나나', '망고'];
console.log(fruitValues.join());     // 사과,바나나,망고
console.log(fruitValues.join(' - ')); // 사과 - 바나나 - 망고

 

2) split(구분자): 문자열을 배열로 분리

let str = '사과,바나나,망고';
console.log(str.split(',')); // ['사과', '바나나', '망고']

 

9. 다차원 배열 (배열 안의 배열)

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9, 10]
];

console.log(matrix[2]);    // [7, 8, 9, 10]
console.log(matrix[2][3]); // 10

이처럼 배열 안에 또 다른 배열을 넣으면 2차원 배열, 더 깊게 넣으면 다차원 배열을 표현할 수 있어요.

 

 

 

다음은 배열의 정리 요약표예요.

구분 메서드 / 속성 설명 반환값
길이 .length 배열의 길이 확인 숫자
추가 .push() 끝에 요소 추가 새 길이
삭제 .pop() 끝 요소 제거 제거된 요소
추가 .unshift() 앞에 요소 추가 새 길이
삭제 .shift() 앞 요소 제거 제거된 요소
추가/삭제 .splice() 지정 위치에 추가·삭제 제거된 요소
탐색 .indexOf() 앞에서부터 검색 인덱스 번호
탐색 .lastIndexOf() 뒤에서부터 검색 인덱스 번호
포함여부 .includes() 존재 여부 확인 true / false
정렬 .sort() 오름차순 정렬 정렬된 배열
반전 .reverse() 순서 반전 반전된 배열
문자열 변환 .join() 배열 → 문자열 문자열
배열 변환 .split() 문자열 → 배열 배열

 

 

 

여기까지 자바스크립트 배열에 알아봤는데요.

 

여러 데이터를 한 곳에 모아 순서대로 관리할 수 있는데 상자 같은 개념이라는 것을 알게 됐어요.

'Frontend > JavaScript' 카테고리의 다른 글

JavaScript High-Order Function & Callback Function  (3) 2025.11.15
JavaScript Function  (0) 2025.11.14
JavaScript control(2)  (0) 2025.11.12
JavaScript control(1)  (0) 2025.11.11
JavaScript Data Type (2)  (0) 2025.11.10