ES6的Set資料結構

2021-09-16 23:46:01 字數 1814 閱讀 8087

es6提供了資料結構set。類似於陣列,但是沒有重複值。

const s = new set();

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

for(let i of s )

var set = new set([1, 2, 3, 4, 4]);

[...set]; // [1, 2, 3, 4]

可用於陣列去重[...new set(array)]

array.from()方法可以將set結構轉換為陣列array.from(new set(array))

let set = new set();

let a = nan;

let b = nan;

set.add(a);

set.add(b);

set; // 只能加入乙個,說明set內部兩個nan是相等的

操作方法(方法的具體實現見:我對js集合的簡單學習):

s.add(1).add(2).add(2); //鏈式寫法

s.size(); //2

s.has(3); //false

s.delete(2);

s.has(2); //false

這裡要注意set的鍵名和鍵值是同乙個值,所以key()和values()行為是一致的。

let set = new set(['red', 'green', 'no']);

for(let item of set.keys())

for(let item of set.values())

for(let item of set.entries())

//對每個成員執行某種操作,引數依次為鍵值、鍵名、集合本身

new set([1, 2, 3]).foreach((value, key) => console.log(value * 2)); //2 4 6

let a = new set([1, 2, 3]);

let b = new set([4, 3, 2]);

//並集

let union = new set([...a, ...b]); //

//交集

let intersect = new set([...a].filter(x => b.has(x))); //

//差集

let difference = new set([...a].filter(x => !b.has(x))); //

號外:擴充套件運算子(...)內部使用for...of迴圈,所以應該知道for of是幹嘛的吧

陣列的map()filter()可用於set

let set = new set([1, 2, 3]);

set = new set([...set].map(x => x * 2)); //set:

let set = new set([1, 2, 3, 4, 5]);

set = new set([...set].filter(x => (x % 2) == 0)); //set

ES6 資料結構 Set

資料結構 set 集合的基本概念 集合是由一組無序且唯一 即不能重複 的項組成的。這個資料結構使用了與有限集合相同的數學概念,應用在計算機的資料結構中。特點 key 和 value 相同,沒有重複的value es6提供了資料結構set.它類似於陣列,但是成員的值都是唯一的,沒有重複的值。1 如何建...

ES6的Set資料結構

es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。應用場景 搜尋歷史關鍵字的儲存 陣列去重 set本身是乙個建構函式,用來生成 set 資料結構。const s newset set函式可以接受乙個陣列作為引數,用來初始化。const set newset 1,...

Set資料結構(es6新增)

es6提供了新的資料結構,它類似陣列,但是成員都是唯一的,沒有重複的值 可以用來解決陣列去重 1 set本身是乙個建構函式,用來生產set資料結構 可以通過add方法新增資料,size方法判斷長度 var s new set 2,3,5,4,5,2,2 map x s.add x for let i...