Q. Set 기본 문법
다음 중 set을 만드는 방법으로 올바른 것을 모두 고르시오.
1. var x = {1, 2, 3, 5, 6, 7}
2. var x = {};
3. var x = new Set('javascript');
4. var x = new Set(range(5));
5. var x = new Set();
😀 내가 푼 답
3, 5
😊 문제풀이 답안
3) var x = new Set('javascript');
5) var x = new Set();
정답은 '3번', '5번'입니다.
Set 객체
✔ 중복되지 않는 유일한 값들의 집합.
✔Set 객체의 특성은 수학적 집합의 특성과 일치
=> 따라서 Set은 수학적 집합을 표현한 자료구조
✔ 이를 통해 교집합, 합집합, 차집합, 여집합등을 구현하는 것이 가능
✔ Set은 데티터 타입 중 하나로 중복되는 값을 가지지 않는 값들의 리스트
✔ Set 객체는 배열과 비슷하지만 차이가 있음
⭐ 동일한 값을 중복하여 포함할 수 없음.
⭐ 요소 순서에 의미가 없음.
⭐ 인덱스로 요소 접근이 불가능함.
Set 객체 생성해보기
✔ Set 생성자 함수로 생성하고, 인수를 전달하지 않으면 빈 Set 객체가 생성됨
✔ 아래와 같이 생성자를 사용하여 set 객체를 생성할 수 있으며, 초기값으로 인터러블한 데이터를 input 으로 입력받으면 set 형태로 변환된 값이 저장됨
✔ 인수로 이터러블을 받음.
✔ 중복된 값을 Set 객체 요소로 저장되지 않으므로 배열에서 중복된 요소를 제거하는데 사용함
✔ 변수 setB에 할당 된 Set 객체는 배열을 입력받아 초기화하였는데 여기서 생성된 결과 값이 Set(5) {'1', 1, '2', 2, '4'}가 출력됨
=> 중복이 제거 된 데이터가 반환되지만 '1'과 1 이 분리된거 처럼 Set은 데이터 타입을 구분해서 저장할수 있음
const set = new Set()
console.log(set) // Set(0) {}
const setB = new Set(["1", 1, 1, "2", 2, "4"])
console.log(setB)
// Set(5) {'1', 1, '2', 2, '4'}
/*
[[Entries]]
0: "1"
1: 1
2: "2"
3: 2
4: "4"
size: 5
[[Prototype]]: Set
*/
Set 객체 자주 사용하는 내장함수
✔ set.add(value) - Set 객체에 value 값을 저장
✔ set.delete(value) - Set 객체에 value 값을 삭제
✔ set.has(value) - Set 객체에 value가 있으면 true, 없으면 false를 리턴
✔ set.clear() - Set 객체에 들어있는 데이터를 삭제
✔ set.size - Set 객체에 들어있는 데이터의 개수를 리턴함