무기/자바스크립트

<JavaScript> 코딩테스트를 위한 핵심 문법 정리 - 배열

디벅잉 2021. 11. 4. 23:53
728x90

🎯 일정에 당장 급한 코딩테스트가 생겨 빠르게 정리해보는 JS 핵심 문법

📌 참고자료 - 모던 자바스크립트 Deep Dive (이웅모 / 위키북스)

 

1. 배열(Array)

1-1. 순회

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

 

1-2. 삭제

const arr1 = [1, 2];

let result = arr1.pop();
console.log(result); // 2
console.log(arr1); // [1]
// pop 메서드는 원본 배열을 변경함

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

arr2.splice(1, 2);
console.log(arr2); // [1, 4, 5]
console.log(arr2.length); // 3
// splice 메서드는 원본 배열을 변경함

const arr3 = [1, 2, 3];

arr3.slice(0, 1); // -> [1]
console.log(arr3); // [1, 2, 3]
// slice 메서드는 원본 배열을 변경하지 않음

 

1-3. 추가

const arr = [1];

arr.push(2);
console.log(arr); // [1, 2]
// push 메서드는 원본 배열을 변경함

const result = arr.concat(3);
console.log(arr); // [1, 2]
console.log(result); // [1, 2, 3]
// concat 메서드는 원본 배열을 변경하지 않음

*원본 배열을 직접 변경하지 않는 메서드의 사용을 추천

 

1-4. join

const arr = [1, 2, 3, 4];

arr.join(); // -> '1,2,3,4';
arr.join(''); // -> '1234';
arr.join(':'); // -> '1:2:3:4';

 

1-5. reverse - 원본 배열이 변경됨

const arr = [1, 2, 3];
const result = arr.reverse();

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

 

1-6. includes

const arr = [1, 2, 3];

arr.includes(2); // -> true

arr.includes(100); // -> false

 

1-7. 배열 고차 함수

1-7-1. sort / reverse - 원본 배열이 변경됨

const fruits = ['Banana', 'Orange', 'Apple'];

fruits.sort();

console.log(fruits); // ['Apple', 'Banana', 'Orange']

fruits.reverse();

console.log(fruits); // ['Orange', 'Banana', 'Apple']

const points = [40, 100, 1, 5, 2, 25, 10];

points.sort((a, b) => a - b);
console.log(points); // [1, 2, 5, 10, 25, 40, 100]

 

1-7-2. forEach

const numbers = [1, 2, 3];

// forEach 메서드는 원본 배열을 변경하지 않지만 콜백 함수를 통해 원본 배열 변경가능
numbers.forEach((item, index, arr) => { arr[index] = item ** 2; });
console.log(numbers); // [1, 4, 9]

 

1-7-3. map

const numbers = [1, 4, 9];

const roots = numbers.map(item => Math.sqrt(item));

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

console.log(numbers); // [1, 4, 9]

 

1-7-4. filter

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

const odds = numbers.filter(item => item % 2);
console.log(odds); // [1, 3, 5]

 

728x90