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...