參考:阮一峰 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上面...