es6中 Set屬性方法,以及遍歷

<script type="text/javascript">
  //Set 實例的屬性和方法
  //add(value):添加某個值,返回 Set 結構本身。
  //delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。
  //has(value):返回一個布爾值,表示該值是否爲Set的成員。
  //clear():清除所有成員,沒有返回值。
   let setAdd =new Set();
   let setVal=setAdd.add(1);
   console.log(setAdd.size);//1
   console.log(setVal);//Set(1) {1}
   console.log(setVal.has(1)) // true);
   console.log(setVal.delete(1));
   console.log(setVal);//Set(0) {}
   //Array.from方法可以將 Set 結構轉爲數組。
   //這就提供了去除數組重複成員的另一種方法。
   const items = new Set([1, 2, 3, 4, 5]);
   const array = Array.from(items);
   console.log(array);//[1, 2, 3, 4, 5]

   function dedupe(array) {//這就提供了去除數組重複成員的另一種方法。
     return Array.from(new Set(array));
   }

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


   //Set遍歷操作
   //Set 結構的實例有四個遍歷方法,可以用於遍歷成員。
   //keys():返回鍵名的遍歷器
   //values():返回鍵值的遍歷器
   //entries():返回鍵值對的遍歷器
   //forEach():使用回調函數遍歷每個成員
    const arr=['a','b','c'];
    let setArr=new Set(arr);
   for(let list of setArr.keys()){//keys():返回鍵名的遍歷器
         console.log(list);
         //a
         //b
         //c
    }
   for(let item of setArr.values()){//values():返回鍵值的遍歷器
         console.log(item);
         //a
         //b
         //c
   }
   for(let vs of setArr.entries()){//entries():返回鍵值對的遍歷器
          console.log(vs);
          //["a":"a"]
          //["b":"b"]
          //["c":"c"]
   }
   for(let item of setArr){//直接用for...of循環遍歷 Set
         console.log(item);
         //a
         //b
         //c
   }
   //forEach()
   //forEach方法的參數就是一個處理函數。該函數的參數與數組的forEach一致,依次爲鍵值、鍵名、集合本身(上例省略了該參數)。這裏需要注意,Set 結構的鍵名就是鍵值(兩者是同一個值),因此第一個參數與第二個參數的值永遠都是一樣的。
   setArr.forEach(function(value,key){
     console.log(value+":"+key);
     //a:a
     //b:b
     //c:c
   })

  </script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章