1. 程式人生 > >ES6 關於Set物件

ES6 關於Set物件

  許多用以前方法去實現需要一大串程式碼的,用ES6竟然幾句就搞定了。

  Set物件是ES6中新增的型別,可以自動排除重複項,生成Set物件後,可以輕鬆遍歷它所包含的內容

  例如,遍歷字串。

var str = new Set("Hello world!");
for(var str1 of str){
  console.log(str1+" ")  
}
結果會是這樣:H e l o w r d !

  為什麼會是這樣,因為Set物件會自動排除重複項。

  到了這裡,我們可以很容易的想到使用Set物件進行陣列去重,沒錯,通過該方法確實是挺方便的。 

var arr = [12,23,45,34,56,56,87,23,45,12,89];
var arr1 = new Set(arr); var arr2 = []; for(var arr3 of arr1){ arr2.push(arr3) } console.log(arr2)

 

  另一種陣列去重法:

function foo(arr){
    return Array.from(new Set(arr))  // Array.from方法可以將 Set 結構轉為陣列
}
const items = [1,2,3,4,5,6,7,1,2,1,3,1,2,3]
console.log(foo(items))

  Set函式接受陣列作為引數,再使用Array.from將其轉換為陣列,從而達到去重的目的

 

  還有一種更簡潔的;

let arr1 = [12,13,23,45,46,48,78,79,45,12,13,23];
let arr = new Set(arr1)
console.log([...arr])  // [ 12, 13, 23, 45, 46, 48, 78, 79 ]