본문 바로가기

02. JavaScript/01. 기본개념, 문법 (ES6)

JavaScript_03. 내장 객체_Set

※ 본 내용은 해당 교재를 참고하여 공부한 내용과 본인의 생각을 정리한 글입니다.

https://www.yes24.com/Product/Goods/105608999

 

바닐라 자바스크립트 - 예스24

실무 역량까지 한 번에 잡을 수 있는바닐라 자바스크립트 이론서자바스크립트는 이제 브라우저를 넘어 웹 애플리케이션뿐만 아니라 마이크로 컨트롤러까지 점점 사용하는 곳이 늘어나고 있다.

www.yes24.com

 

 

 Set 객체는 배열(Array)처럼 값들의 집합이다. 배열처럼 데이터 타입에 상관없이 값을 추가할 수 있다. 배열과 가장 큰 차이점은 Set는 중복 값을 허용하지 않는다. 즉 Set는 유일한 값을 보장한다. Set에 데이터를 추가해서 저장하려고 하면, 기존에 동일한 값이 저장되어 있는지 확인하고 이미 저장되어 있다면 나중에 추가한 데이터는 추가되지 않는다.

 

 

● add()

 배열은 push() 함수를 사용해서 새로운 데이터를 추가하는데, Set은 add() 함수를 사용해서 데이터를 추가한다. 이때 추가하려는 데이터가 이미 저장되어 있는지를 확인하고, 이미 동일한 데이터가 저장되어 있다면 그 데이터는 추가되지 않는다.

 

● has()

 특정 데이터가 저장되어 있는지 확인하려면 has() 함수를 사용한다.

 

● delete()

 저장되어 있는 특정 데이터를 삭제하려면 delete() 함수를 사용한다.

 

● clear()

 저장되어 있는 모든 데이터를 한 번에 삭제하려면 clear() 함수를 사용한다.

 

● forEach()

 Set에 저장되는 모든 데이터를 읽을 때는 forEach() 함수를 사용한다.

 

<!DOCTYPE html>
<html>

<head>
    <title>Document</title>
</head>

<body>
    <script>
        //Set 객체 생성 
        let mySet = new Set();
        console.log('=======================add=======================');
        mySet.add(1);
        console.log(mySet);
        mySet.add(2);
        console.log(mySet);
        mySet.add(3);
        console.log(mySet);
        mySet.add(1); //이미 1이란 값이 저장되어 있기 때문에 추가되지 않음.
        console.log(mySet);
        mySet.size; // 3
        console.log(`mySet.size = ${mySet.size}`);

        console.log('=======================has=======================');
        console.log(mySet.has(1)); //true
        console.log(mySet.has(5)); //false

        console.log('=====================delete======================');
        console.log(mySet.delete(2));
        console.log(mySet);

        console.log('=====================forEach=====================');
        //값이 너무 적어서 추가해줌
        mySet.add(5);
        mySet.add(4);
        mySet.forEach(function (item) {
            console.log(item);
        });

        mySet.clear(); //저장되어 있는 모든 데이터가 삭제 됨.
        console.log(`mySet.clear() = ${mySet.size}`);
    </script>
</body>

</html>

 

console