Set的基本用法

2022-07-01 01:42:10 字數 2593 閱讀 7991

參考:阮一峰 es6入門之set

es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

const s = new set();

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

// set結構不會新增重複的值

for(let i of s)

// ## 初始化

// 例一 可以接受乙個陣列作為引數

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

// ...將乙個陣列轉為用逗號分隔的引數序列

console.log([...set]);

// 例二

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

console.log(items.size);

// 例三 可以接受具有iterable介面的其他資料結構作為引數

const set2 = new set(document.queryselectorall('div'));

console.log(set.size);

// 類似於

const set2 = new set();

document

.queryselectorall('div')

.foreach(div => set.add(div));

console.log(set.size);

// set中nan等於自身,其餘比較相當於 ===

let set3 = new set();

let a = nan;

let b = nan;

set3.add(a);

set3.add(b);

console.log(set3)

// 兩個物件總是不相等的

let set4 = new set();

set4.add({}); // 1

console.log(set4.size);

set4.add({}); // 2

console.log(set4.size);

const s = new set();

s.add(1).add(2).add(2);

console.log(s.size);

console.log(s.has(1));

console.log(s.has(2));

console.log(s.has(3));

s.delete(2);

console.log(s.has(2));

// set轉陣列

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

const array = array.from(items);

console.log(array);

// 去除陣列重複成員

function dedupe(array)

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

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

// 返回鍵名

for(let item of set.keys())

// 返回鍵值

for(let item of set.values())

// set 鍵名=鍵值

// 返回鍵值對

for(let item of set.entries())

// 可以直接用 for of遍歷set

// for in 和 for of的區別是:in 是遍歷物件,of是遍歷值

for (let x of set)

// set也有foreach()方法

set.foreach((value, key) => console.log(key + ' : ' + value));

// 此處foreach方法的引數是乙個處理函式。

// 陣列的 map 和 filter 方法也可以間接用於set

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

// map 將原陣列對映成新陣列

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

console.log(s);

// filter返回過濾後的新陣列

s = new set([...s].filter(x => (x % 3) ==0));

console.log(s);

// 實現並集、交集、差集

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

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

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

console.log(union);

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

console.log(intersect);

let difference = new set([...a

STL的set基本用法

set是集合,雖然也存在鍵值和實值,不過兩者根本就是同乙個值,鍵值的設定完全就是為了滿足紅黑樹的底層結構,set操作與map很像不過也有些不同。1 set迭代器與map的不同 1 set使用接引用運算子 取值,而map使用first和second取值。2 set的迭代器都是常量迭代器,不能用來修改所...

set基本用法 2

1 include2 include3 include4 include5 include6 include7 include8 include9 include10 include11 include 12 define maxn 50 13 define inf 0x7fffffff 14 de...

Set資料結構的基本用法

1.set基本用法 es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set本身是乙個建構函式,用來生成set的資料結構。const s new set 2,3,5,4,5,2,2 foreach x s.add x for let i of s 2 3 5 4上面...