javascript

Javascript Set객체

유니유뉘 2023. 3. 4. 14:11
728x90

Set 객체란?

유일한 값들의 집합(collaction)을 나타내는 자료구조이다.

새로운 Set객체를 생성할 때, 중복된 값을 허용하지 않고 원시 값(primitive value)과 객체(reference value) 모두 저장할 수 있다.

특징은 중복된 값을 허용하지 않고 저장 순서가 유지되며 값의 동일성은 Same-value-zero equality(동일한 값-0 동등성)로 판단된다.

값의 동일성은 값의 비교 방식 중 하나이다. 숫자값이 같은 경우(NaN 제외, +0,-0은 같은 값으로 처리), 문자열 값이 같은 경우(대소문자구분 있음), 불리언 값이 같은 경우, undefined값이 같은 경우, null값이 같은 경우, 심벌(symbol) 값이 같은 경우

Same-value-zero equality를 사용하는 Set 객체는 값의 동등성을 판단할 때, 위의 조건에 따라 값을 비교한다. 따라서 동일한 값 - 0 동등성을 가지는 값은 Set 객체에서 중복된 값으로 처리되지 않는다.

const mySet = new Set();

Set 객체는 다음과 같은 메소드를 사용할 수 있다.

  • add(value) : 새로운 값을 추가한다.
  • delete(value) : 값을 삭제한다.
  • has(value) : 값이 존재하는지 확인한다.
  • clear() : 모든 값을 삭제한다.
  • size : 값의 개수를 반환한다.

Set객체는 배열과 유사하게 사용할 수 있으며 반복문을 사용해 값을 순회할 수 있다.

const mySet = new Set([1,2,3,4,5]);

mySet.add(6);

console.log(mySet.has(3));
//true
console.log(mySet.size);
//6

mySet.forEach(function(value){
	console.log(value);
});

Set객체는 유일한 값들의 집합을 다루는데 유용하다. 이를 통해 중복된 값을 제거하거나, 순서를 유지하며 값의 유일성을 확인하는 등의 작업을 쉽게 수행할 수 있다.

Set 객체에 대한 주관적인 생각

Set객체를 이용하면 중복된 값들을 제거할 때 유용할 거라 생각이 들었다. 또 저장 순서를 유지해 주니까 기록처럼 남기기도 좋을 것 같았으며 객체니까 다양한 자료들을 저장할 수 있어 활용성이 높은 것 같다. 중복된 자료들은 알아서 저장하지 않으니 메모리 사용을 줄일 수 있어서 안 사용할 이유가 없을 것 같고 그래서 자주 사용할 것 같다.

반응형