자바스크립트(JavaScript)의 Set 클래스는 특정 값이 세트(Set) 객체에 포함되어 있는지 확인할 수 있도록 has() 메서드를 제공합니다. 이 메서드는 인자로 전달된 값이 세트에 존재하면 true, 존재하지 않으면 false를 반환합니다.
has() 메서드는 다음과 같이 사용할 수 있습니다.
예제 코드
let mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(1); // 중복 값은 무시됨
mySet.add(3);
mySet.add("a");
console.log(mySet);
console.log(mySet.has(55)); // 추가된 적 없는 숫자
console.log(mySet.has("")); // 추가된 적 없는 빈 문자열
console.log(mySet.has({})); // 참조가 다른 새로운 객체
console.log(mySet.has(1)); // 존재하는 숫자
console.log(mySet.has("a")); // 존재하는 문자열실행 결과
Set { 1, 2, 3, 'a' }
false
false
false
true
true결과 해석
mySet.has(55)와mySet.has("")는 해당 값이 세트에 한 번도 추가된 적이 없기 때문에false를 반환합니다.mySet.has({})역시false를 반환하는데, 이는 자바스크립트에서 객체가 참조(reference) 기준으로 비교되기 때문입니다. 세트에 저장된 객체와 새로 생성한 빈 객체{}는 내용이 같아 보여도 서로 다른 참조를 가집니다.mySet.has(1)과mySet.has("a")는 실제로 추가된 값이므로true를 반환합니다.
참고로 출력 결과에서 중복으로 추가한 1은 한 번만 저장된 것을 확인할 수 있습니다. Set은 이름 그대로 중복을 허용하지 않는 자료구조이기 때문입니다.