ES6 Set 데이터 유형
37766 단어 ES6
구문:
new Set([iterable]);
매개 변수:iterable 교체 가능한 대상을 전달하면 모든 요소가 새 Set에 중복되지 않게 추가됩니다.이 매개변수를 지정하지 않거나 값이 null이면 새 세트가 비어 있습니다.새 Set 객체 값을 반환합니다.
set 대상은 값의 집합입니다. 삽입된 순서에 따라 원소를 교체할 수 있습니다.Set의 요소는 한 번만 나타납니다. 즉, Set의 요소는 고유합니다.
{
let list = new Set();
list.add(5);
list.add(7);
// list
//size length
console.log('size',list.size); //size 2
console.log('set-list',list); //{5, 7}
}
{
let arr = [1,2,3,4,5];
let list = new Set(arr);
console.log('size',list.size); //size 5
console.log('set-list',list); //{1, 2, 3, 4, 5}
}
{
let obj = {a:2,b:3};
let list = new Set();
list.add(obj);
obj['a'] = 4; //
console.log('set-list-obj',list); //{{[{a:4,b:3}]}}
}
{
let list = new Set();
list.add(1);
list.add(2);
list.add(1); //set , —— :
console.log('list',list); //{1, 2}
let arr = [1,2,3,1,2,4];
let list2 = new Set(arr);
// !
console.log('unique',list2); //{1, 2, 3, 4}
//set ,2 '2'
let arr1 = [1,2,3,1,'2',4];
let list3 = new Set(arr1);
console.log('unique',list3); //{1, 2, 3,'2', 4}
}
set 인스턴스 방법
//set
{
let arr = ['add','delete','clear','has'];
let list = new Set(arr);
//has set
console.log('has',list.has('add')); //true
//delete
console.log('delete',list.delete('add'),list); //true {"delete", "clear", "has"}
//clear set
list.clear();
console.log('list',list); // {}
}
set 스트리밍 set은 키의 집합이지만 vaule를 저장하지 않습니다. 스트리밍 처리된 키와value는 Set에 중복된 키가 없습니다.
//set set key vaule, key value Set , key。
{
let arr = ['add','delete','clear','has',{last:2}];
let list = new Set(arr);
console.log('set-list',list); //{"add", "delete", "clear", "has", {…}}
for(let key of list.keys()){
console.log('keys',key); //value add, value delete, value clear, value has, keys {last: 2}
}
for(let value of list.values()){
console.log('value',value); //value add, value delete, value clear, value has, value {last: 2}
}
for(let [key,value] of list.entries()){
// set key value
console.log('entries',key,value); //entries add add, entries delete delete, entries clear clear, entries has has, entries {last: 2} {last: 2}
}
list.forEach(function(item){
console.log(item); //add delete clear has {last: 2}
})
}
set 적용
//
{
let arr = [2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5];
let list = new Set(arr);
console.log(list); //{2, 3, 4, 5, 6, 7, 32}
}
{
console.log(new Set([2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5])); //{2, 3, 4, 5, 6, 7, 32}
}
// Array
{
const numbers = [2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5];
console.log([...new Set(numbers)]); //[2, 3, 4, 5, 6, 7, 32]
}
//intersect
{
let set1 = new Set([1,2,3,4,5,6,7,8]);
let set2 = new Set(['a','b','c',1,2,3,4]);
var intersection = new Set([...set1].filter(x => set2.has(x)));
// [...]
var intersectionArray = [...new Set([...set1].filter(x => set2.has(x)))];
// difference
var difference = new Set([...set1].filter(x => !set2.has(x)));
// [...]
var differenceArray = [...new Set([...set1].filter(x => !set2.has(x)))];
console.log(' ',intersection); //{1, 2, 3, 4}
console.log(' - ',intersectionArray); //[1, 2, 3, 4]
console.log(' ',difference); //{5, 6, 7, 8}
console.log(' - ',differenceArray); //[5, 6, 7, 8]
}
{
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
var union = new Set([...a, ...b]); // {1, 2, 3, 4}
}
{
var myArray = ["value1", "value2", "value3"];
// Set Array Set
var mySet = new Set(myArray);
console.log(mySet.has("value1")); // returns true
// ...( ) Set Array
console.log([...mySet]); // myArray
}
{
var text = 'Indiana';
var mySet = new Set(text); // Set {'I', 'n', 'd', 'i', 'a'}
console.log(mySet.size); // 5
}
WeakSet 객체와 Set 객체의 차이점
//WeakSet Set
//1. weakset ,weakset
//2. set weakset
{
let weakList = new WeakSet();
let arg = {a:'1',b:'2'};
weakList.add(arg); //weakset !!
// WeakSet.clear();
// weakList.add(2); //
//weakset clear() sizes !!
console.log('weakList',weakList); //weakList WeakSet {Object {}}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(Javascript) ES6의 주요 특징 정리let을 사용하면 선언한 변수는 블록안에서만 유효하게 된다. const 역시 마찬가지로 블록스코프를 따른다 .const 와 let의 차이점은 const 는 상수로 값을 할당한다는 점이다. 따라서 값을 변경시키려고 하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.