JavaScript

[Javascript] 데이터 중복을 제거하는 Set 자료구조

hellosonic 2023. 8. 3. 17:41

Set 생성 : 자바스크립트에서 Set는 클래스이므로 new 키워드와 생성자를 사용하여 생성한다.

var set = new Set(); // Set(0) {size : 0}
var numSet = new Set([1,2,3]); // Set(3) {1,2,3}

set.add(value) : 세트에 새로운 값을 추가한다.

set.add(1); // Set(1) {1}
set.add("A"); // Set(2) {1, 'A'}
set.add(true); // Set(3) {1, 'A', true}

set.delete(value) : 세트에 특정 값을 삭제한다.

// set = Set(3) {1, 'A', true} 일 때,
set.delete(1); // 세트에 1이 있어서 값을 삭제할 수 있으므로 삭제 후 true를 리턴
set.delete(2); // 세트에 삭제할 값이 없으므로 false를 리턴

set.has(value) : 세트에 특정 값이 존재하는지 확인한다.

// set = Set(3) {1, 'A', true} 일 때,
if (set.has("A")) {
    console.log("A는 세트에 존재합니다."); // A는 세트에 존재합니다.
}

set.size : 세트의 길이를 확인한다. (배열에서 array.length와 동일)

console.log(set.size); // 2

set.clear() : 세트 객체의 모든 값을 제거한다.

set.clear(); // Set(0) {size: 0}

세트 순회 : 세트에 저장되어 있는 모든 값을 순회한다.

//배열 순회와 동일
for (var num of numSet){
    console.log(num);
}


numSet.forEach((num) => console.log(num));

배열 -> 세트

var array = [1,2,3,3,3,4,5];
var set = new Set(array);
    
console.log(set); // Set(5) { 1, 2, 3, 4, 5 }

세트 -> 배열

var array = [1,2,3,3,3,4,5];
var set = new Set(array); // Set(5) {1,2,3,4,5}
    
var newArr = Array.from(set);
    
console.log(newArr); // [1,2,3,4,5]
var array = [1,2,3,3,3,4,5];
var set = new Set(array); // Set(5) {1,2,3,4,5}
    
var newArr = [...set];
    
console.log(newArr); // [1,2,3,4,5]
var array = [1,2,3,3,3,4,5];
var set = new Set(array); // Set(5) {1,2,3,4,5}
    
var newArr = [];
set.forEach((element,index) => {
    newArr.push(element);
});
    
console.log(newArr); // [1,2,3,4,5]