부록

공통로직

자주 사용되는 유틸 로직 기술합니다.


1. 배열 관련

배열 내 중복 체크

const hasDuplicates = arr => new Set(arr).size !== arr.length;

배열에서 특정 값 모두 제거하기

const removeItemAll = (arr, value) => arr.filter(item => item !== value);

2. 문자열 관련

문자열의 첫 글자만 대문자로 변경

const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);

문자열이 비어있거나 공백인지 확인

const isEmptyOrWhitespace = str => !str || str.trim().length === 0;

3. 객체 관련

객체가 비어있는지 확인

const isObjectEmpty = obj => Object.keys(obj).length === 0;

객체 깊은 복사 (Deep Copy)

const deepCopy = obj => JSON.parse(JSON.stringify(obj));

4. 날짜 관련

두 날짜 간 일수 차이 구하기

const daysBetween = (date1, date2) =>
  Math.floor(Math.abs(new Date(date2) - new Date(date1)) / (1000 * 60 * 60 * 24));

날짜를 yyyy-mm-dd 형식으로 포맷하기

const formatDate = date => new Date(date).toISOString().slice(0, 10);

5. 숫자 관련

숫자를 천 단위 콤마로 포맷하기

const formatNumberWithComma = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

숫자 여부 확인하기

const isNumber = value => typeof value === 'number' && !isNaN(value);

6. URL 관련

URL 쿼리 파라미터 가져오기

const getQueryParams = url => Object.fromEntries(new URL(url).searchParams);

객체를 쿼리스트링으로 변환

const objectToQueryString = obj => new URLSearchParams(obj).toString();

7. 기타 유틸

비동기 지연(delay)

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

랜덤 정수 생성 (최소, 최대 포함)

const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
let data = {};
setInterval(() => {
  // 메모리에 계속 쌓이는데 제거 안 함
  data[Math.random()] = new Array(1000000).join("💥");
}, 1000);
Previous
유용한 라이브러리