ES6 Set 데이터 유형

37766 단어 ES6
정의: Set 대상은 원시 값이나 대상 인용 등 모든 종류의 유일한 값을 저장할 수 있습니다.
구문:
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}  
    }
    
  • Array 관련
  • {
      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 
    }
    
  • String 관련
  • {
      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 {}}
    }
    

    좋은 웹페이지 즐겨찾기