[typescript] 배열의 요소 중복 체크하기

indexOf 메서드 사용

const arr = [1, 2, 3, 4, 1];
function hasDuplicate(arr: number[]) {
  return arr.some((item, index) => arr.indexOf(item) !== index);
}
console.log(hasDuplicate(arr)); // true

이 함수는 some 메서드를 사용하여 배열의 요소를 반복하고, indexOf 메서드를 사용하여 현재 요소의 인덱스와 indexOf의 결과를 비교하여 중복을 찾습니다.

Set 객체 사용

function hasDuplicateSet(arr: number[]) {
  return new Set(arr).size !== arr.length;
}
console.log(hasDuplicateSet(arr)); // true

이 방법은 ES6의 Set 객체를 사용하여 중복된 요소 없이 배열에서 고유한 값의 컬렉션을 생성하고, Set의 크기와 배열의 길이를 비교하여 중복을 확인합니다.

두 가지 방법 모두 중복된 요소를 확인하는데 사용될 수 있고, 어떤 방법을 선택할지는 상황에 따라 다를 수 있습니다. 메서드 호출의 성능과 브라우저 호환성 등을 고려하여 알맞은 방법을 선택해보세요.

자세한 내용은 MDN web docs에서 확인할 수 있습니다.