JavaScript Array

자바스크립트에서 배열(Array)은 여러 개의 값을 순서대로 저장할 수 있는 특별한 객체입니다. 배열은 일반적으로 동일한 데이터 타입의 요소를 담지만, 자바스크립트 배열은 여러 타입의 요소를 혼합하여 저장할 수 있습니다. 배열에 대해 상세히 설명하겠습니다.

1. 배열 생성

1.1 배열 리터럴

가장 간단한 방법은 배열 리터럴을 사용하는 것입니다.

const numbers = [1, 2, 3, 4, 5];
const mixedArray = [1, 'two', true, { key: 'value' }, [5, 6]];

1.2 Array 생성자

Array 생성자를 사용하여 배열을 만들 수 있습니다.

const numbers = new Array(1, 2, 3, 4, 5);
const emptyArray = new Array(5); // 길이가 5인 빈 배열

2. 배열의 속성

2.1 length 속성

length 속성은 배열의 길이를 반환합니다.

const numbers = [1, 2, 3, 4, 5];
console.log(numbers.length); // 5

3. 배열 요소 접근

3.1 인덱스를 사용한 접근

배열 요소에 접근하거나 수정할 때는 인덱스를 사용합니다. 인덱스는 0부터 시작합니다.

const numbers = [1, 2, 3, 4, 5];

console.log(numbers[0]); // 1
numbers[1] = 20; // 두 번째 요소를 20으로 수정
console.log(numbers[1]); // 20

3.2 at() 메서드

at() 메서드를 사용하면 배열의 마지막 요소에 접근할 때 유용합니다.

const numbers = [1, 2, 3, 4, 5];

console.log(numbers.at(-1)); // 5 (마지막 요소)
console.log(numbers.at(-2)); // 4 (마지막에서 두 번째 요소)

4. 배열 메서드

자바스크립트는 배열을 조작하기 위한 다양한 내장 메서드를 제공합니다.

4.1 push()와 pop()

push()는 배열의 끝에 요소를 추가하고, pop()은 배열의 마지막 요소를 제거합니다.

const numbers = [1, 2, 3];
numbers.push(4); // [1, 2, 3, 4]
console.log(numbers.pop()); // 4 (제거된 요소)
console.log(numbers); // [1, 2, 3]

4.2 unshift()와 shift()

unshift()는 배열의 앞에 요소를 추가하고, shift()는 배열의 첫 번째 요소를 제거합니다.

const numbers = [1, 2, 3];
numbers.unshift(0); // [0, 1, 2, 3]
console.log(numbers.shift()); // 0 (제거된 요소)
console.log(numbers); // [1, 2, 3]

4.3 concat()

concat() 메서드는 두 개 이상의 배열을 합쳐서 새로운 배열을 만듭니다.

const array1 = [1, 2];
const array2 = [3, 4];
const array3 = array1.concat(array2); // [1, 2, 3, 4]
console.log(array3);

4.4 slice()

slice() 메서드는 배열의 일부를 추출하여 새로운 배열을 만듭니다.

const numbers = [1, 2, 3, 4, 5];
const sliced = numbers.slice(1, 3); // [2, 3] (인덱스 1부터 3 전까지)
console.log(sliced);

4.5 splice()

splice() 메서드는 배열의 요소를 추가하거나 제거합니다.

const numbers = [1, 2, 3, 4, 5];
numbers.splice(2, 1, 'a', 'b'); // 인덱스 2에서 1개 요소 제거, 'a'와 'b' 추가
console.log(numbers); // [1, 2, 'a', 'b', 4, 5]

4.6 forEach()

forEach() 메서드는 배열의 각 요소에 대해 콜백 함수를 실행합니다.

const numbers = [1, 2, 3];
numbers.forEach((num, index) => {
  console.log(`Element at index ${index} is ${num}`);
});

4.7 map()

map() 메서드는 배열의 각 요소에 대해 콜백 함수를 실행하고, 새로운 배열을 만듭니다.

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]

4.8 filter()

filter() 메서드는 조건에 맞는 요소만 포함하는 새로운 배열을 만듭니다.

const numbers = [1, 2, 3, 4, 5];
const even = numbers.filter(num => num % 2 === 0);
console.log(even); // [2, 4]

4.9 reduce()

reduce() 메서드는 배열의 각 요소를 누적하여 단일 값을 만듭니다.

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 15

4.10 find()와 findIndex()

find()는 조건에 맞는 첫 번째 요소를 반환하고, findIndex()는 조건에 맞는 첫 번째 요소의 인덱스를 반환합니다.

const numbers = [1, 2, 3, 4, 5];
const found = numbers.find(num => num > 3);
const foundIndex = numbers.findIndex(num => num > 3);

console.log(found); // 4
console.log(foundIndex); // 3

4.11 includes()

includes() 메서드는 배열에 특정 요소가 포함되어 있는지 여부를 반환합니다.

const numbers = [1, 2, 3];
console.log(numbers.includes(2)); // true
console.log(numbers.includes(4)); // false

4.12 sort()

sort() 메서드는 배열의 요소를 정렬합니다. 기본적으로 요소를 문자열로 취급하여 정렬합니다.

const numbers = [3, 1, 4, 1, 5, 9];
numbers.sort();
console.log(numbers); // [1, 1, 3, 4, 5, 9]

// 숫자 정렬을 위해 비교 함수를 제공
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 1, 3, 4, 5, 9]

4.13 reverse()

reverse() 메서드는 배열의 요소를 역순으로 정렬합니다.

const numbers = [1, 2, 3];
numbers.reverse();
console.log(numbers); // [3, 2, 1]

5. 배열의 복사와 병합

5.1 배열 복사

배열을 복사할 때는 스프레드 연산자나 slice() 메서드를 사용합니다.

const original = [1, 2, 3];
const copy = [...original]; // 스프레드 연산자
const copy2 = original.slice(); // slice() 메서드

console.log(copy); // [1, 2, 3]
console.log(copy2); // [1, 2, 3]

5.2 배열 병합

배열을 병합할 때는 스프레드 연산자나 concat() 메서드를 사용합니다.

const array1 = [1, 2];
const array2 = [3, 4];
const merged = [...array1, ...array2]; // 스프레드 연산자
const merged2 = array1.concat(array2); // concat() 메서드

console.log(merged); // [1, 2, 3, 4]
console.log(merged2); // [1, 2, 3, 4]

6. 다차원 배열

배열 안에 배열을 포함시켜 다차원 배열을 만들 수 있습니다.

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

console.log(matrix[0][0]); // 1 (첫 번째 행의 첫 번째 요소)
console.log(matrix[2][1]); // 8 (세 번째 행의 두 번째 요소)

7. 배열과 반복문

배열은 반복문을 사용하여 순회할 수 있습니다.

7.1 for 반복문

“`javascript

Leave a Reply

Your email address will not be published. Required fields are marked *