[javascript] Set객체
프로그래머스 1단계 폰켓몬 문제 풀 때 Set객체를 사용했는데...
Set객체가 중복을 제거해준다는 것은 알고 있었지만 딱 거기까지만 알았을 뿐 그 이상은 몰라서 찾아봄
Set객체란?
Set 객체는 중복되지 않는! 유일한!! 값들의 집합이다.
배열과 유사하지만 Set객체는 배열과는 다르게 중복되지 않은 값들로 이루어져 있다.
[ Set 객체의 생성 ]
- Set 생성자 함수 이용
- 인수로는 이터러블 객체를 넣어주며, 인수를 전달하지 않으면 빈 Set객체가 생성됨
const set = new Set();
console.log(set); // Set(0) {size: 0}
const set1 = new Set([1, 2, 3, 4]);
console.log(set1); // Set(4) {1, 2, 3, 4}
const set2 = new Set("banana");
console.log(set2); // Set(3) {'b', 'a', 'n'}
// 이렇게 중복되는 a와 n은 여러 개가 저장되지 않고 한 개만 저장된다.
[ Set을 통한 배열의 중복 요소 제거 ]
const uniq = array => [...new Set(array)];
// 배열의 중복 요소를 제거할 uniq 함수 만들어줌
console.log(uniq([0, 7, 0, 3, 1, 7, 6])); // [0, 7, 3, 1, 6]
// uniq 함수의 매개변수로 배열 전달 -> 중복된 요소가 제거되어 나옴
uniq함수 설명
- Set 객체 생성시, 인수로 중복 요소를 제거할 배열(array) 전달
- Spread 연산자를 사용하여 생성된 Set 객체의 요소들을 하나씩 꺼내준 뒤,
새로운 배열의 요소로 넣어줌
[... Set(5) {0, 7, 3, 1, 6}] → [0, 7, 3, 1, 6] 으로 짠! 하고 변환됨!!
[ Set객체 요소의 개수 ]
- Set객체.size를 사용
- size를 이용하여 Set객체의 크기 변경 불가능
const set = new Set('apple');
console.log(set.size); // 4
// set.size = 10; (x) 잘못된 방법! 변경 불가능!
[ 요소 추가/ 삭제 ]
- 요소 추가
: Set객체.add(추가할 요소)
- 요소 삭제
: Set객체.delete(삭제할 요소)
→ delete 메서드는 삭제 성공시 true, 실패시 false 반환함
- 요소 일괄 삭제
: Set객체.clear()
// Set객체 생성
const set = new Set();
// 요소 추가
set.add(1);
console.log(set) // Set(1) {1}
set.add(2).add(3).add(2);
console.log(set) // Set(3) {1, 2, 3}
// 이미 있는 요소를 또 추가하면 추가되지 않음
// 요소 삭제
set.delete(2);
console.log(set); // Set(2) {1, 3}
// 요소 일괄 삭제
set.clear()
console.log(set); // Set(0) {size: 0}
[ 요소의 존재 여부 ]
- Set객체.has(확인할 요소)
const set1 = new Set('banana');
const set2 = new Set([1, 3, 7]);
console.log(set1.has('a')); // true
console.log(set2.has(5)); // false
[ 요소 순회 ]
- 여러 방법이 있지만 간단하게 for ... of 문 사용
const hello = new Set('hello');
for (const value of hello) {
console.log(value); // h e l o
}
Author And Source
이 문제에 관하여([javascript] Set객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ppyororong_0_0/javascript-Set
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Set 객체는 중복되지 않는! 유일한!! 값들의 집합이다.
배열과 유사하지만 Set객체는 배열과는 다르게 중복되지 않은 값들로 이루어져 있다.
- Set 생성자 함수 이용
- 인수로는 이터러블 객체를 넣어주며, 인수를 전달하지 않으면 빈 Set객체가 생성됨
const set = new Set();
console.log(set); // Set(0) {size: 0}
const set1 = new Set([1, 2, 3, 4]);
console.log(set1); // Set(4) {1, 2, 3, 4}
const set2 = new Set("banana");
console.log(set2); // Set(3) {'b', 'a', 'n'}
// 이렇게 중복되는 a와 n은 여러 개가 저장되지 않고 한 개만 저장된다.
const uniq = array => [...new Set(array)];
// 배열의 중복 요소를 제거할 uniq 함수 만들어줌
console.log(uniq([0, 7, 0, 3, 1, 7, 6])); // [0, 7, 3, 1, 6]
// uniq 함수의 매개변수로 배열 전달 -> 중복된 요소가 제거되어 나옴
uniq함수 설명
- Set 객체 생성시, 인수로 중복 요소를 제거할 배열(array) 전달
- Spread 연산자를 사용하여 생성된 Set 객체의 요소들을 하나씩 꺼내준 뒤,
새로운 배열의 요소로 넣어줌
[... Set(5) {0, 7, 3, 1, 6}] → [0, 7, 3, 1, 6] 으로 짠! 하고 변환됨!!
- Set객체.size를 사용
- size를 이용하여 Set객체의 크기 변경 불가능
const set = new Set('apple');
console.log(set.size); // 4
// set.size = 10; (x) 잘못된 방법! 변경 불가능!
- 요소 추가
: Set객체.add(추가할 요소)
- 요소 삭제
: Set객체.delete(삭제할 요소)
→ delete 메서드는 삭제 성공시 true, 실패시 false 반환함
- 요소 일괄 삭제
: Set객체.clear()
// Set객체 생성
const set = new Set();
// 요소 추가
set.add(1);
console.log(set) // Set(1) {1}
set.add(2).add(3).add(2);
console.log(set) // Set(3) {1, 2, 3}
// 이미 있는 요소를 또 추가하면 추가되지 않음
// 요소 삭제
set.delete(2);
console.log(set); // Set(2) {1, 3}
// 요소 일괄 삭제
set.clear()
console.log(set); // Set(0) {size: 0}
- Set객체.has(확인할 요소)
const set1 = new Set('banana');
const set2 = new Set([1, 3, 7]);
console.log(set1.has('a')); // true
console.log(set2.has(5)); // false
- 여러 방법이 있지만 간단하게 for ... of 문 사용
const hello = new Set('hello');
for (const value of hello) {
console.log(value); // h e l o
}
Author And Source
이 문제에 관하여([javascript] Set객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ppyororong_0_0/javascript-Set저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)