이번에는 자바스크립트 배열에 대해 살펴보겠습니다. 자바스크립트 배열의 기본 개념을 이해하고, 배열을 다양한 방식으로 다루는 방법을 실제 예제와 함께 익힐 수 있도록 정리합니다.
자바스크립트 배열
배열은 여러 개의 값을 순서대로 저장할 수 있는 자료 구조입니다. 쉽게 말해, 여러 개의 상자가 일렬로 늘어서 있는 모습을 상상해 보세요. 각 상자에는 숫자, 문자열, 객체 등 다양한 타입의 데이터를 넣을 수 있습니다.
- 예를 들어, 학생들의 이름을 저장하는 배열을 만들어 봅시다:
let students = ['김철수', '이영희', '박민수', '정지은'];
이 코드에서 students
라는 이름의 배열을 만들었고, 그 안에 4명의 학생 이름을 저장했습니다.
배열 생성하기
배열을 만드는 방법에는 여러 가지가 있습니다. 가장 흔한 두 가지 방법을 살펴보겠습니다.
a. 대괄호 [] 사용하기
let fruits = ['사과', '바나나', '오렌지'];
b. Array() 생성자 함수 사용하기
let numbers = new Array(1, 2, 3, 4, 5);
두 방법 모두 동일한 결과를 만들어냅니다. 대괄호를 사용하는 방법이 더 간단하고 일반적으로 많이 사용됩니다.
배열의 길이
배열의 길이는 배열에 들어있는 요소의 개수를 의미합니다. length
속성을 사용하여 배열의 길이를 알 수 있습니다.
let colors = ['빨강', '파랑', '초록'];
console.log(colors.length); // 출력: 3
이 예제에서 colors
배열에는 3개의 요소가 있으므로, length
는 3입니다.
배열의 요소에 접근하기
배열의 각 요소에 접근하려면 인덱스(index)를 사용합니다. 인덱스는 0부터 시작합니다.
즉, 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1, 이런 식으로 계속됩니다.
let animals = ['고양이', '강아지', '토끼', '햄스터'];
console.log(animals[0]); // 출력: 고양이
console.log(animals[2]); // 출력: 토끼
// 배열의 마지막 요소에 접근하기
console.log(animals[animals.length - 1]); // 출력: 햄스터
배열 요소 수정하기
배열의 요소를 수정하려면, 해당 인덱스에 새로운 값을 할당하면 됩니다.
let cars = ['현대', '기아', '벤츠', 'BMW'];
console.log(cars); // 출력: ['현대', '기아', '벤츠', 'BMW']
cars[1] = '도요타';
console.log(cars); // 출력: ['현대', '도요타', '벤츠', 'BMW']
배열에 요소 추가하기
배열에 새로운 요소를 추가하는 방법에는 여러 가지가 있습니다.
- push() 메서드: 배열의 끝에 하나 이상의 요소를 추가합니다.
let fruits = ['사과', '바나나'];
fruits.push('오렌지');
console.log(fruits); // 출력: ['사과', '바나나', '오렌지']
fruits.push('딸기', '키위');
console.log(fruits); // 출력: ['사과', '바나나', '오렌지', '딸기', '키위']
- unshift() 메서드: 배열의 시작 부분에 하나 이상의 요소를 추가합니다.
let numbers = [3, 4, 5];
numbers.unshift(1, 2);
console.log(numbers); // 출력: [1, 2, 3, 4, 5]
- c. 인덱스를 사용하여 직접 추가:
let colors = ['빨강', '파랑'];
colors[2] = '초록';
console.log(colors); // 출력: ['빨강', '파랑', '초록']
// 주의: 존재하지 않는 인덱스에 값을 할당하면, 그 사이의 인덱스들은 비어있게 됩니다.
colors[5] = '노랑';
console.log(colors); // 출력: ['빨강', '파랑', '초록', empty × 2, '노랑']
배열에서 요소 제거하기
배열에서 요소를 제거하는 방법도 여러 가지가 있습니다.
- pop() 메서드: 배열의 마지막 요소를 제거하고 그 요소를 반환합니다.
let fruits = ['사과', '바나나', '오렌지'];
let lastFruit = fruits.pop();
console.log(lastFruit); // 출력: 오렌지
console.log(fruits); // 출력: ['사과', '바나나']
- shift() 메서드: 배열의 첫 번째 요소를 제거하고 그 요소를 반환합니다.
let numbers = [1, 2, 3, 4, 5];
let firstNumber = numbers.shift();
console.log(firstNumber); // 출력: 1
console.log(numbers); // 출력: [2, 3, 4, 5]
- splice() 메서드: 배열의 특정 위치에서 요소를 제거하거나 새로운 요소를 추가할 수 있습니다.
let animals = ['고양이', '강아지', '토끼', '햄스터', '기니피그'];
// 인덱스 2부터 2개의 요소를 제거합니다.
let removedAnimals = animals.splice(2, 2);
console.log(removedAnimals); // 출력: ['토끼', '햄스터']
console.log(animals); // 출력: ['고양이', '강아지', '기니피그']
// 인덱스 1의 위치에 새로운 요소들을 추가합니다.
animals.splice(1, 0, '사자', '호랑이');
console.log(animals); // 출력: ['고양이', '사자', '호랑이', '강아지', '기니피그']
배열 반복하기
배열의 모든 요소를 반복하는 방법에는 여러 가지가 있습니다.
for 루프 사용하기
let fruits = ['사과', '바나나', '오렌지', '딸기'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// 출력:
// 사과
// 바나나
// 오렌지
// 딸기
for...of 루프 사용하기
let colors = ['빨강', '파랑', '초록', '노랑'];
for (let color of colors) {
console.log(color);
}
// 출력:
// 빨강
// 파랑
// 초록
// 노랑
forEach() 메서드 사용하기
let numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number, index) {
console.log(`인덱스 ${index}의 값: ${number}`);
});
// 출력:
// 인덱스 0의 값: 1
// 인덱스 1의 값: 2
// 인덱스 2의 값: 3
// 인덱스 3의 값: 4
// 인덱스 4의 값: 5
배열 메서드 활용하기
자바스크립트는 배열을 다루는 데 유용한 여러 메서드를 제공합니다. 몇 가지 중요한 메서드를 살펴보겠습니다.
- map(): 배열의 모든 요소에 대해 주어진 함수를 호출하고, 그 결과로 새로운 배열을 만듭니다.
let numbers = [1, 2, 3, 4, 5];
let squaredNumbers = numbers.map(function(number) {
return number * number;
});
console.log(squaredNumbers); // 출력: [1, 4, 9, 16, 25]
- filter(): 주어진 함수의 테스트를 통과하는 요소들로 새로운 배열을 만듭니다.
let ages = [32, 33, 16, 40, 9, 7, 14, 55, 65, 72];
let adults = ages.filter(function(age) {
return age >= 18;
});
console.log(adults); // 출력: [32, 33, 40, 55, 65, 72]
- reduce(): 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결괏값을 반환합니다.
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce(function(accumulator, currentValue) {
return accumulator + currentValue;
}, 0);
console.log(sum); // 출력: 15
- find(): 주어진 테스트 함수를 만족하는 첫 번째 요소의 값을 반환합니다.
let fruits = ['사과', '바나나', '오렌지', '딸기', '키위'];
let foundFruit = fruits.find(function(fruit) {
return fruit.length > 3;
});
console.log(foundFruit); // 출력: 바나나
- some(): 배열의 어떤 요소라도 주어진 테스트 함수를 통과하는지 테스트합니다.
let numbers = [1, 2, 3, 4, 5];
let hasEvenNumber = numbers.some(function(number) {
return number % 2 === 0;
});
console.log(hasEvenNumber); // 출력: true
- every(): 배열의 모든 요소가 주어진 테스트 함수를 통과하는지 테스트합니다.
let numbers = [1, 2, 3, 4, 5];
let allPositive = numbers.every(function(number) {
return number > 0;
});
console.log(allPositive); // 출력: true
다차원 배열
배열의 요소로 다른 배열을 포함할 수 있습니다. 이를 다차원 배열이라고 합니다.
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(matrix[1][1]); // 출력: 5
// 다차원 배열 반복하기
for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < matrix[i].length; j++) {
console.log(matrix[i][j]);
}
}
여기까지, 이렇게 자바스크립트의 배열에 대해 정리해 보았습니다.
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
자바스크립트 DOM 이해하기. DOM 트리, 요소 조작, 이벤트 리스너 - 자바스크립트 #9 (0) | 2024.07.22 |
---|---|
자바스크립트 이벤트 객체와 리스너 addEventListener 활용법 - 자바스크립트 #8 (0) | 2024.07.19 |
자바스크립트 객체 리터럴과 생성자 함수 활용법 가이드 - 자바스크립트 #6 (0) | 2024.07.15 |
자바스크립트 함수 선언과 호출. 매개변수와 인자를 활용한 효과적인 코드 작성법 - 자바스크립트 #5 (0) | 2024.07.11 |
JavaScript 자바스크립트 제어문과 연산자 이해하기. 예제 코드 포함 - 자바스크립트 #4 (0) | 2024.07.10 |