Set
은 JavaScript에서 제공하는 내장 객체입니다. Set
객체는 유일한 값을 가지는 컬렉션으로, 중복된 요소를 자동으로 제거합니다. 아래에 Set
객체에 관한 상세한 설명을 제공합니다:
유일한 값: Set
은 중복된 값을 허용하지 않습니다. 즉, 동일한 값을 여러 번 추가해도 최종적으로는 하나의 유일한 값만 유지됩니다.
순서 없음: Set
은 값들의 순서를 유지하지 않습니다. 요소들이 추가된 순서대로 저장되는 것을 보장하지 않습니다.
값의 타입: Set
은 어떤 타입의 값을도 저장할 수 있습니다. 즉, 원시 타입 (예: 숫자, 문자열, 불리언) 및 객체 타입 (예: 객체, 배열, 함수)을 모두 포함할 수 있습니다.
요소 추가: Set
에 요소를 추가하기 위해서는 add()
메소드를 사용합니다. 이미 존재하는 요소를 추가하려고 하면 무시됩니다.
요소 제거: Set
에서 요소를 제거하기 위해서는 delete()
메소드를 사용합니다. 제거에 성공하면 true
를 반환하고, 요소가 존재하지 않아 제거에 실패하면 false
를 반환합니다.
크기 확인: Set
의 크기 (즉, 저장된 요소의 개수)를 확인하기 위해 size
속성을 사용합니다.
요소 존재 여부 확인: Set
에 특정 요소가 존재하는지 여부를 확인하기 위해 has()
메소드를 사용합니다. 요소가 존재하면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
반복: Set
의 요소들을 반복하기 위해서는 for...of
루프를 사용하거나 forEach()
메소드를 사용할 수 있습니다.
Set
은 중복 요소를 제거하고 유일한 값만을 저장하기 위해 사용됩니다. 이를 통해 데이터의 일관성을 유지하고, 고유한 요소들에 대한 빠른 검색 및 필터링을 수행할 수 있습니다.
아래는 Set
을 활용하여 배열이나 리스트에서 중복을 제거하는 예시입니다:
const arr = [1, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 출력: [1, 2, 3, 4, 5]
위의 예시에서 arr
배열에는 중복된 요소가 포함되어 있습니다. Set
을 사용하여 중복을 제거하기 위해 new Set(arr)
를 사용합니다. 그런 다음, ...
스프레드 연산자를 사용하여 Set
객체를 다시 배열로 변환합니다. 결과적으로 uniqueArr
배열에는 중복이 제거된 요소들만 포함됩니다.
Set
객체의 내부 동작 원리는 다음과 같습니다:
Set
객체는 값들을 유일하게 유지하기 위해 내부적으로 해시 테이블 (hash table)을 사용합니다.
Set
에 값을 추가할 때, 해시 테이블에 해당 값이 이미 존재하는지 확인합니다. 만약 이미 존재한다면, 값을 추가하지 않고 무시합니다.
Set
은 ===
비교 연산자를 사용하여 값의 동등성을 판별합니다. 즉, 값들이 엄격한 동등성을 가지고 있는지 비교합니다.
Set
객체는 순서를 유지하지 않습니다. 요소들이 추가된 순서대로 저장되는 것을 보장하지 않습니다. 따라서, 요소들을 반복할 때 항상 동일한 순서로 반환되지 않을 수 있습니다.
Set
객체는 size
속성을 통해 저장된 요소의 개수를 확인할 수 있습니다.
Set
객체의 has()
메소드를 사용하여 특정 값이 존재하는지 여부를 확인할 수 있습니다.
Set
객체에서 값을 제거하기 위해 delete()
메소드를 사용합니다. 제거에 성공하면 true
를 반환하고, 요소가 존재하지 않아 제거에 실패하면 false
를 반환합니다.
Set
객체는 내부적으로 유일한 값들을 관리하고 중복을 제거하기 때문에 배열이나 리스트에서 중복을 제거하는 데 유용하게 활용될 수 있습니다.