반응형
[JavaScript & TypeScript] Math.max()와 slice() 완벽 정리
📌 JavaScript & TypeScript에서 Math.max()와 slice() 활용하기
JavaScript와 TypeScript에서 배열의 최대값을 찾는 Math.max()와 배열을 자르는 slice()는 자주 사용되는 핵심 메서드입니다. 이 글에서는 각 메서드의 동작 방식과 최적의 활용법을 정리합니다. 🚀
✅ 1️⃣ Math.max() - 배열의 최대값 찾기
📌 기본 사용법
Math.max()는 주어진 숫자 중 가장 큰 값을 반환합니다.
console.log(Math.max(1, 5, 3, 7)); // 출력: 7
📌 배열에서 최대값 찾기 (Spread Operator 활용)
배열을 전달하려면 Spread Operator(...)를 사용해야 합니다.
const numbers = [3, 7, 2, 8, 5];
const maxVal = Math.max(...numbers);
console.log(maxVal); // 출력: 8
✅ 장점:
- 직관적이고 코드가 간결함
- 작은 배열에서는 효과적
❌ 단점:
- 배열 크기가 클 경우 스택 오버플로우 위험 (Math.max(...largeArray))
📌 reduce()를 활용한 최대값 찾기 (안전한 방법)
큰 배열에서는 reduce()를 사용하면 안정적입니다.
const maxVal = numbers.reduce((max, num) => Math.max(max, num), -Infinity);
console.log(maxVal); // 출력: 8
✅ 대량 데이터에서도 안전하게 실행 가능! 🚀
✅ 2️⃣ slice() - 배열 일부 잘라내기
📌 기본 사용법
slice(start, end)는 start부터 end-1까지의 요소를 복사하여 새로운 배열을 생성합니다.
const arr = [0, 1, 2, 3, 4, 5];
console.log(arr.slice(1, 4)); // 출력: [1, 2, 3]
📌 slice()의 특징
메서드 원본 배열 변경 여부 반환 값
slice(start, end) | ❌ 변경되지 않음 | 새로운 배열 |
splice(start, deleteCount, ...items) | ✅ 변경됨 | 삭제된 요소 반환 |
✅ 즉, slice()는 원본 배열을 유지하며 부분 배열을 만들 때 사용
📌 slice()를 활용한 배열 복사
const original = [1, 2, 3, 4];
const copy = original.slice();
console.log(copy); // 출력: [1, 2, 3, 4]
✅ 배열을 변경하지 않고 복사할 때 slice() 사용 가능!
📌 Math.max()와 slice()를 함께 활용한 예제
🚀 LeetCode 문제 해결 (배열 내 최댓값 찾기)
const arr = [3, 7, 1, 9, 4, 2];
const maxInSubarray = Math.max(...arr.slice(1, 5));
console.log(maxInSubarray); // 출력: 9 (1~4번 인덱스에서 최댓값)
✅ 배열의 특정 부분에서 최대값을 찾을 때 Math.max(...slice()) 조합 활용 가능!
📌 최종 정리
🚀 Math.max() 요약
- 단일 값의 최대값 찾기: Math.max(a, b, c, ...)
- 배열의 최대값 찾기 (Spread Operator 사용): Math.max(...arr)
- 대량 데이터 처리 시 안전한 방법: arr.reduce((max, num) => Math.max(max, num), -Infinity)
🚀 slice() 요약
- 배열 일부 가져오기: arr.slice(start, end) → end는 포함되지 않음
- 배열 복사: arr.slice()
- splice()와 다름 (원본 배열 변경 X)
✅ 이제 Math.max()와 slice()를 활용하여 더 효율적인 코드 작성이 가능! 🚀
반응형
'programing > TypeScript' 카테고리의 다른 글
[TypeScript] 배열에서 최소값(Min)과 최대값(Max) 구하는 방법 (0) | 2025.03.14 |
---|---|
[JavaScript/TypeScript] -0과 0의 차이와 처리 방법 (0) | 2025.03.12 |
[TypeScript] Map 사용법 정리 - 키-값 기반 데이터 관리 (0) | 2025.03.11 |
[TypeScript] Set 사용법 정리 - 중복 없는 데이터 관리 (0) | 2025.03.11 |