Javascript

ES6 에서 추가된 문법들(3) - Set

joy_lee 2024. 7. 18. 00:44

Set

set은 중복을 허용하지 않은 값의 컬렉션이다. Array 와 비슷한데 중복을 허용하지 않는 것이 가장 큰 특징이다.

Array vs Set

  Array Set
항목의 순서 입력한 대로 순서있게 저장 순서 없이 저장
index 사용 여부 index 로 접근 가능 index 통해 접근 불가
중복 중복 허용 중복 불가

 

Set 의 Methods

  • Set 생성하기 - new Set()
  • 값 추가하기- set.add()
const nameSet = new Set();

nameSet.add('Sophia');
nameSet.add('Emma');
nameSet.add('Olivia');

console.log(nameSet);
// {'Sophia', 'Emma', 'Olivia'}

nameSet.add('Mia');
nameSet.add('Sophia');

// 중복된 값을 추가해도 입력되지 않는다
console.log(nameSet);
// {'Sophia', 'Emma', 'Olivia', 'Mia'}

// 객체를 전달받아 바로 생성할 수 있다.
const numberSet = new Set([1, 2, 3]);

 

  • 값이 존재하는지 확인하기 - set.has()
nameSet.has('Olivia'); // true
nameSet.has('Chloe'); // false

 

  • Set의 크기 확인하기 - set.size
const numberSet = new Set([1, 2, 3]);
numberSet.size; // 3

 

  • 값을 제거하기 - set.delete()
  • 값이 있어서 제거에 성공하면 true, 값이 없어서 제거에 실패하면 fasle 를 반환한다.
  • Set 을 비우기 - set.clear();
const numberSet = new Set([1, 2, 3]);

// 제거하기
numberSet.delete(1); // true
numberSet.delete(5); // false

// 비우기
nameSet.clear();

 

Set 의 순환

  • set.keys() - set 의 값을 반복하는 반복자 반환
  • set.values() - set.keys 와 동일함. Map 과의 호환을 위해 만들어짐
  • set.entries() - set 내의 각 값을 이용해 만든 [value, value] 배열을 포함하는 반복자 반환
  • 값을 순회하기 - for…of
let animalSet = new Set(['dog', 'cat', 'hamster']);

for (let value of animalSet) {
	alert(value); // dog, cat, hamster
}

 

 

참고한 페이지

https://ko.javascript.info/map-set

https://www.w3schools.com/js/js_sets.asp