Bae

[Javascript] Set 심화 본문

Javascript

[Javascript] Set 심화

Bae:) 2022. 2. 26. 11:00

ㅁ Set

- 배열과의 차이점

  1) 셋은 중복을 허용하지 않는다

  2) 셋은 인덱스의 개념이 없다

  3) 셋은 키와 값이 같다

  * 따라서 셋은 중복을 제거하거나 값의 유무만 판단해야하는 경우 사용

    배열은 특정 요소에 접근해야 하거나, 기타 인덱스가 필요한 경우 사용

 

- new Set()

  new Set()은 새로운 셋을 생성

  괄호 안에 초기값으로 배열과 같은 (반복 가능한) 객체를 전달 받으면, 값을 복사하여 (중복 제거된 채로) 셋을 생성

const arr = [1, 2, 1];
const aSet = new Set(arr);

console.log(aSet);	//Set {1, 2}

 

- add()

  add()는 셋 요소의 끝에 주어진 값을 추가

  셋은 기본적으로 중복을 허용하지 않기 때문에 추가하려는 값이 이미 셋에 있는 경우 추가되지 않고 무시

const aSet = new Set();

aSet.add(1);
aSet.add(2);
aSet.add(1);

console.log(aSet);	// Set {1, 2}

 

- delete()

  delete()는 주어진 값을 셋에서 제거

  delete()는 값을 성공적으로 제거한 경우 true, 제거하지 못한 경우 false를 반환

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

console.log(aSet.delete(3));	// true
console.log(aSet.delete(5));	// true
console.log(aSet.delete(5));	// false

 

- has()

  has()는 주어진 값이 셋에 존재하는지에 따라 true 또는 false 값을 반환

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

console.log(aSet.has(1));	// true
console.log(aSet.has(10));	// false

 

- clear()

  clear()는 셋에 들어있는 요소들을 모두 제거하고 비어있는 상태로 만든다

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

aSet.clear();

 

- size

  size는 배열의 length와 같이 셋에 저장된 요소의 개수(셋의 크기)를 반환

const arr = [1, 2, 3, 4, 5];
console.log(arr.length);	// 5

const aSet = new Set([1, 2, 3, 4, 5]);
console.log(aSet.size);		// 5

 

- forEach()

  셋은 배열과 거의 동일한 데이터 구조로, forEach()문을 사용할 수 있음

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

aSet.forEach((num) => {
	if(num > 3){
    	aSet.delete(num);
    }
});

console.log(aSet);	//	[1, 2, 3]

 

Comments