JavaScript

[JS] 코딩테스트 001~003 - 배열개념 정리

Irene1988 2025. 2. 15. 19:35

자바스크립트의 배열(Array) 은 여러 개의 값을 하나의 변수에 저장할 수 있는 객체 타입입니다.

 

배열의 선언 방법

let arr1 = []; // 빈 배열
let arr2 = [1, 2, 3, 4, 5]; // 숫자 배열
let arr3 = ["apple", "banana", "cherry"]; // 문자열 배열
let arr4 = new Array(3); // 길이가 3인 빈 배열

 

 

배열의 주요 속성

length : 배열의 길이를 반환

let fruits = ["apple", "banana", "cherry"];
console.log(fruits.length); // 3

 

배열의 주요 메서드

push() : 배열 끝에 요소 추가

pop() : 배열 끝 요소 제거

unshift() : 배열 앞에 요소 추가

shift() : 배열 앞 요소 제거

let numbers = [1, 2, 3];

numbers.push(4); // [1, 2, 3, 4]
numbers.pop();   // [1, 2, 3]

numbers.unshift(0); // [0, 1, 2, 3]
numbers.shift();    // [1, 2, 3]

 

배열의 순회(반복문)

let arr = ["A", "B", "C"];

// for 문
for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

// forEach()
arr.forEach((item, index) => {
    console.log(index, item);
});

// map() (새로운 배열 반환)
let newArr = arr.map(item => item.toLowerCase());
console.log(newArr); // ["a", "b", "c"]

 


배열 변형 및 필터링

 

map() : 배열의 각 요소를 변환해 새로운 배열 생성

filter() : 조건에 맞는 요소만 필터링

find() : 조건을 만족하는 첫 번째 요소 반환

reduce() : 배열의 값을 누적하여 단일 값 반환

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

let squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16, 25]

let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

let firstEven = numbers.find(num => num % 2 === 0);
console.log(firstEven); // 2

let sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15

 


배열 정렬 및 변형

 

sort() : 배열 정렬 (문자열 기준이므로 숫자는 콜백 필요)

reverse() : 배열 순서 뒤집기

join() : 배열을 문자열로 변환

split() : 문자열을 배열로 변환

let arr = [3, 1, 4, 1, 5, 9];

arr.sort((a, b) => a - b); // 오름차순 정렬
console.log(arr); // [1, 1, 3, 4, 5, 9]

arr.reverse();
console.log(arr); // [9, 5, 4, 3, 1, 1]

let words = ["Hello", "World"];
console.log(words.join(" ")); // "Hello World"

let str = "JavaScript,HTML,CSS";
let strArr = str.split(",");
console.log(strArr); // ["JavaScript", "HTML", "CSS"]

배열 비구조화 할당 (Destructuring)

let colors = ["red", "green", "blue"];
let [first, second] = colors;

console.log(first); // "red"
console.log(second); // "green"

 


 

**splice에 대해서 더 자세히~!!!

splice()는 자바스크립트 배열에서 요소를 추가하거나 제거할 때 유용한 메서드(내장함수)

*기본문법

array.splice(start, deleteCount, item1, item2, ...);

 

매개변수 설명
start 변경을 시작할 인덱스 위치
deleteCount 삭제할 개수
item1, item2, ... 추가할 요소(생략 가능)

 

2. splice()를 활용한 다양한 예제

 

1) 요소 삭제 ( splice(2, 2) → 2번 인덱스부터 2개 제거) 

let nums = [10, 20, 30, 40, 50];

// 인덱스 2부터 2개 삭제 (30, 40 삭제)
nums.splice(2, 2);

console.log(nums); // [10, 20, 50]

splice(2, 2) → 2번 인덱스부터 2개 제거

 

2) 요소 추가 ( splice(1, 0, "orange") → 1번 인덱스에 "orange" 추가 (삭제 없음))

let fruits = ["apple", "banana", "cherry"];

// 인덱스 1에 "orange" 추가
fruits.splice(1, 0, "orange");

console.log(fruits); // ["apple", "orange", "banana", "cherry"]

splice(1, 0, "orange") → 1번 인덱스에 "orange" 추가 (삭제 없음)

 

3) 요소 교체 (삭제 후 추가) splice(1, 1, "yellow") → 1번 인덱스를 "yellow"로 교체

let colors = ["red", "green", "blue"];

// 인덱스 1의 요소("green")를 "yellow"로 교체
colors.splice(1, 1, "yellow");

console.log(colors); // ["red", "yellow", "blue"]

splice(1, 1, "yellow") → 1번 인덱스를 "yellow"로 교체

 

4) 여러 개 추가 및 삭제

let numbers = [1, 2, 3, 4, 5, 6];

// 인덱스 2부터 3개(3, 4, 5) 삭제하고, 새 요소 추가
numbers.splice(2, 3, 7, 8, 9);

console.log(numbers); // [1, 2, 7, 8, 9, 6]

splice(2, 3, 7, 8, 9) → 3, 4, 5를 삭제하고 7, 8, 9 추가

 

4) 배열 끝에서 삭제

let arr = [1, 2, 3, 4, 5];

// 마지막 2개 요소 삭제
arr.splice(-2, 2);

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

음수 인덱스 사용 가능! -2부터 2개 삭제

 

5) 배열 끝에서 삭제

let arr = [1, 2, 3, 4, 5];

// 마지막 2개 요소 삭제
arr.splice(-2, 2);

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

음수 인덱스 사용 가능! -2부터 2개 삭제

 

 

  • splice(start, deleteCount, item1, item2, ...)
  • 요소 삭제: splice(index, 개수)
  • 요소 추가: splice(index, 0, 추가할 값)
  • 요소 교체: splice(index, 1, 새로운 값)
  • 원본 배열이 변경됨!

 


코드테스트01

 * 문제1
 * 배열의 삭제
 * 
 * 다음 배열에서 400, 500를 삭제하는 code를 입력하세요.
 * => 배열에서 지원하는 내장함수 사용하기
let nums = [100, 200, 300, 400, 500];

 

■1번 (코드테스트 안내)

nums.pop();
nums.pop();
console.log(nums);

* pop() 은 배열의 가장 마지막 요소를 삭제

 

■ 2번 (챗GPT 안내)

nums.splice(3,2); // 3번째 요소부터 2개 제거
console.log(nums);

* 배열 nums의 세번째(3) 요소부터 해서 2개의 요소 삭제

 

■ 3번(챗GPT 안내)

let result = nums.filter(num => num !== 400 && num != 500);
console.log(result);

* 400과 500을 제외하고 필터링(조건 필터링)

 


코드테스트02

 * 문제2
 * 배열의 내장함수
 * 
 * 배열의 내장함수를 이용하여 코드를 입력하고 다음과 같이 출력되게 하세요!
 * => 말로 정리하자면.....
 * => 배열 arr 2번째 인덱스값으로 10000을 넣기
 
 
 let arr = [200, 100, 300];
 
 
 // 출력 결과
// [200,100,10000,300]
arr.splice(2,0,10000); 
console.log(arr);

0은 삭제없이 삽입만 의미.


코드테스트03

 * 문제3: 변수의 타입
 * 다음 출력 값으로 올바른 것은?
 * 
 * let arr = [100, 200, 300];
 * console.log(typeof(arr));
 
 let arr = [100, 200, 300];
console.log(typeof(arr));

/**
 * 1) undefined
 * 2) string
 * 3) number
 * 4) object
 * 
 * 
 * => 정답 4) object
 */
let myValue; // 변수를 선언만 하고, 값을 따로 할당하지 않을때...
console.log(myValue);  // => 결과는 undefined

let myValue2 = null; // 변수를 선언하고 아직 이 변수에 아무값도 넣지 않겠다는 뜻 null
console.log(typeof(myValue2));  // => 결과는 null


console.log(typeof("abcde"));
console.log(typeof(false));


 

*위 포스팅은 챗GPT 답변을 토대로 작성되었습니다.