ES6의 Set 사용 방법
구문
set 대상은 원시 값이든 대상 인용이든 모든 종류의 유일한 값을 저장할 수 있습니다.
new Set([iterable])
약술
set 대상은 값의 집합이고 원소는 한 번만 나타납니다. 즉, Set의 원소는 유일합니다.
var set = new Set([{},{}])
set //{{},{}}
set.size // 2
var set = new Set([NaN,NaN])
set //{NaN}
set.size // 1
set 대상과 그룹 사이의 변환
var arr = [1,2,3,4,4];
var set = new Set(arr) // set
set //{1,2,3,4}
//
Array.from(set) //[1,2,3,4]
//
[...set] //[1,2,3,4]
set 및 문자열
var str = 'siiva';
new Set(str) //{'s','i','v','a'}
Set.prototype.add() && Set.prototype.size
mySet.add(value)
Set.prototype.size가 Set 실례의 구성원 총수를 되돌려줍니다
var mySet = new Set();
mySet.add(1) // {1}
mySet.add(2).add('2') //{1,2,'2'} ,2 '2' set
mySet.size //3
Set.prototype.has()
has 방법은value가set 대상에 존재하는지 여부를 판단하기 위해 브리 값을 되돌려줍니다
mySet.has(value)
var mySet = new Set();
mySet.add('siva');
mySet.has('siva') // true
mySet.has('hello') // false
Set.prototype.delete()
delete () 방법은 Set 대상에서 지정한 요소를 삭제할 수 있습니다.
mySet.delete(value);
var mySet = new Set();
mySet.add('siva');
mySet.delete('hello') //false
mySet.delete('siva') //true
mySet.has('siva') //false
mySet.size //0
Set.prototype.clear()
Set 객체의 모든 요소 비우기
mySet.clear()
var mySet = new Set()
mySet.add(1).add('1')
mySet.size //2
mySet.has('1') //true
mySet.clear();
mySet.size //0
스트리퍼
Set.prototype.키 (): 키 이름을 되돌려주는 플러그인 Set.prototype.values (): 키 값을 되돌려 주는 플러그인 Set.prototype.entries (): 키 값이 맞는 플러그인 셋을 되돌려줍니다.prototype.forEach(): 콜백 함수 반복
var mySet = new Set(['s','i','v'])
for(let i of mySet.keys()){
console.log(i)
}
// s
// i
// v
for(let i of mySet.values()){
console.log(i)
}
// s
// i
// v
for(let i of mySet.entries()){
console.log(i)
}
// ['s','s']
// ['i','i']
// ['v','v']
var otherSet = mySet.entries();
otherSet.next().value // ['s','s']
otherSet // {'i','v'}
otherSet.next().value //['i','i']
otherSet // {'v'}
otherSet.next().value //['v','v']
otherSet // {}
mySet.entries(); // {"s", "i", "v"}
Set.prototype.forEach()
forEach 메서드는 컬렉션의 요소 순서에 따라 각 요소에 대해 제공된 콜백 함수를 한 번씩 실행합니다.
mySet.forEach(callback[, thisArg])
삭제된 요소는 실행되지 않지만,undefined,null는 실행됩니다
function callback(value,key,set){
console.log(value,key,set)
}
new Set(['siva','hello',undefined,null]).forEach(callback)
// siva siva {"siva", "hello", undefined, null}
// hello hello {"siva", "hello", undefined, null}
// undefined undefined {"siva", "hello", undefined, null}
// null null {"siva", "hello", undefined, null}
Set의 사용 방법
let arr1 = [1,2,3,4,5];
let arr2 = [4,5,6,7,8];
let a = new Set(arr1);
let b= new Set(arr2)
new Set([...arr1,...arr2]) //{1,2,3,4,5,6,7,8}
let arr3 = [...new Set([...arr1,...arr2])] //[1,2,3,4,5,6,7,8]
let arr3 = new Set(arr1.filter(x=>b.has(x))) //{4,5}
let arr3 = new Set(arr1.filter(x=>!b.has(x))) //{1,2,3}
let arr4 = new Set(arr2.filter(x=>!a.has(x))) //{6,7,8}
[...arr3,...arr4] //[1,2,3,6,7,8]
Weakset
WeakSet 대상은 약한 대상을 하나의 집합에 저장할 수 있도록 합니다. 그 중의 모든 대상 값은 한 번만 나타날 수 있습니다.
크기 속성이 없고 WeakSet 대상은 일일이 열거할 수 없습니다.대상만 저장할 수 있고 문자열, 숫자 등 데이터 형식을 넣을 수 없습니다
방법은 WeakSet이 있습니다.prototype.add(value)/WeakSet.prototype.delete(value)/WeakSet.prototype.has(value)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.