Set
배열과의 차이점
- 셋은 중복을 허용하지 않는다.
- 셋은 인덱스의 개념이 없다.
- 셋은 키와 값이 같다.
이러한 차이점으로 인해 셋은 주로 중복을 제거하거나 값의 유무만을 판단해야 하는 경우에 사용된다.
new Set()
새로운 셋을 생성한다. 이때 괄호 안에 초깃값으로 배열과 같은 객체를 전달받으면, 해당 값을 복사하여 (중복이 제거된 채로) 셋을 생성한다.
const arr = [1, 2, 1];
const aSet = new Set(arr);
console.log(aSet); // {1, 2}
add()
셋 요소의 끝에 주어진 값을 추가한다. 주어진 값이 이미 셋에 있는 경우 추가되지 않고 무시된다.
const aSet = new Set();
aSet.add(1);
aSet.add(2);
aSet.add(1);
console.log(aSet); // {1, 2}
delete()
주어진 값을 셋에서 제거한다.
const aSet = new Set([1, 2, 3, 4, 5]);
aSet.delete(3);
aSet.delete(5);
console.log(aSet); // {1, 2, 4}
has()
주어진 값이 셋에 존재하는지에 따라 boolean 값을 반환한다.
const aSet = new Set([1, 2, 3, 4, 5]);
console.log(aSet.has(1)); // true
console.log(aSet.has(10)); // false
clear()
셋에 들어있는 요소들을 모두 제거하고 비어있는 상태로 만든다.
const aSet = new Set([1, 2, 3, 4, 5]);
aSet.clear();
console.log(aSet); // {}
size
배열의 length와 같이 셋에 저장된 요소의 개수를 반환한다.
const aSet = new Set([1, 2, 3, 4, 5]);
console.log(aSet.size); // 5
forEach()
셋은 배열과 거의 동일한 데이터 구조로, forEach() 문을 사용할 수 있으며, 사용 방법은 배열과 동일하다.
const aSet = new Set([1, 2, 3, 4, 5]);
aSet.forEach((number) => {
if (number > 3) {
aSet.delete(number);
}
});
console.log(aSet); // {1, 2, 3}'Language > JavaScript' 카테고리의 다른 글
| [JavaScript] 클래스 (0) | 2024.09.18 |
|---|---|
| [JavaScript] Map 심화 (0) | 2024.09.18 |
| [JavaScript] 객체 심화 (0) | 2024.09.18 |
| [JavaScript] 배열 심화 (0) | 2024.09.16 |
| [JavaScript] 문자열 심화 (0) | 2024.09.16 |