1. 程式人生 > >es6 Set數據結構

es6 Set數據結構

for 數組 document 展示 結構 item lan cto http

原文 http://es6.ruanyifeng.com/#docs/set-map

Set類似於數組,但是成員的值都是唯一的,沒有重復的值。

Set 本身是一個構造函數,用來生成 Set 數據結構。

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) {
  console.log(i);
}
// 2 3 5 4

上面代碼通過add方法向 Set 結構加入成員,結果表明 Set 結構不會添加重復的值。

// 例一
const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4] // 例二 const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]); items.size // 5 // 例三 function divs () { return [...document.querySelectorAll(‘div‘)]; } const set = new Set(divs()); set.size // 56 // 類似於 divs().forEach(div => set.add(div)); set.size // 56

上面代碼中,例一和例二都是Set函數接受數組作為參數,例三是接受類似數組的對象作為參數。

上面代碼中,也展示了一種去除數組重復成員的方法。

// 去除數組的重復成員
[...new Set(array)]

Array.from方法可以將 Set 結構轉為數組。

const items = new Set([1, 2, 3, 4, 5]);
const array = Array.from(items);

這就提供了去除數組重復成員的另一種方法。

function dedupe(array) {
  return Array.from(new Set(array));
}

dedupe([1, 1, 2, 3]) // [1, 2, 

es6 Set數據結構