JavaScript Set

agnusdei·2023년 7월 13일
0

Set은 JavaScript에서 제공하는 내장 객체입니다. Set 객체는 유일한 값을 가지는 컬렉션으로, 중복된 요소를 자동으로 제거합니다. 아래에 Set 객체에 관한 상세한 설명을 제공합니다:

  1. 유일한 값: Set은 중복된 값을 허용하지 않습니다. 즉, 동일한 값을 여러 번 추가해도 최종적으로는 하나의 유일한 값만 유지됩니다.

  2. 순서 없음: Set은 값들의 순서를 유지하지 않습니다. 요소들이 추가된 순서대로 저장되는 것을 보장하지 않습니다.

  3. 값의 타입: Set은 어떤 타입의 값을도 저장할 수 있습니다. 즉, 원시 타입 (예: 숫자, 문자열, 불리언) 및 객체 타입 (예: 객체, 배열, 함수)을 모두 포함할 수 있습니다.

  4. 요소 추가: Set에 요소를 추가하기 위해서는 add() 메소드를 사용합니다. 이미 존재하는 요소를 추가하려고 하면 무시됩니다.

  5. 요소 제거: Set에서 요소를 제거하기 위해서는 delete() 메소드를 사용합니다. 제거에 성공하면 true를 반환하고, 요소가 존재하지 않아 제거에 실패하면 false를 반환합니다.

  6. 크기 확인: Set의 크기 (즉, 저장된 요소의 개수)를 확인하기 위해 size 속성을 사용합니다.

  7. 요소 존재 여부 확인: Set에 특정 요소가 존재하는지 여부를 확인하기 위해 has() 메소드를 사용합니다. 요소가 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

  8. 반복: 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 객체의 내부 동작 원리는 다음과 같습니다:

  1. Set 객체는 값들을 유일하게 유지하기 위해 내부적으로 해시 테이블 (hash table)을 사용합니다.

  2. Set에 값을 추가할 때, 해시 테이블에 해당 값이 이미 존재하는지 확인합니다. 만약 이미 존재한다면, 값을 추가하지 않고 무시합니다.

  3. Set=== 비교 연산자를 사용하여 값의 동등성을 판별합니다. 즉, 값들이 엄격한 동등성을 가지고 있는지 비교합니다.

  4. Set 객체는 순서를 유지하지 않습니다. 요소들이 추가된 순서대로 저장되는 것을 보장하지 않습니다. 따라서, 요소들을 반복할 때 항상 동일한 순서로 반환되지 않을 수 있습니다.

  5. Set 객체는 size 속성을 통해 저장된 요소의 개수를 확인할 수 있습니다.

  6. Set 객체의 has() 메소드를 사용하여 특정 값이 존재하는지 여부를 확인할 수 있습니다.

  7. Set 객체에서 값을 제거하기 위해 delete() 메소드를 사용합니다. 제거에 성공하면 true를 반환하고, 요소가 존재하지 않아 제거에 실패하면 false를 반환합니다.

Set 객체는 내부적으로 유일한 값들을 관리하고 중복을 제거하기 때문에 배열이나 리스트에서 중복을 제거하는 데 유용하게 활용될 수 있습니다.

0개의 댓글