set:是一種新的資料結構,類似於陣列,但是裡面的值都是唯一的
set本身是乙個建構函式,可以通過const set = new set()來建立乙個set型別的值,通過建構函式建立後,會得到set原型上的一些方法
ps:通過建構函式建立新物件的過程,開闢一塊新記憶體,建立乙個空物件,設定原型繼承原型上的方法,繫結this,執行建構函式中的方法,返回這個新物件
一般可以用set去除陣列中的重複元素:[...new set(array)], array.from(new set(array))]
set上的一些方法:
add(): 新增元素
delete():刪除某個值
has(): 判斷set中是否有這個值
clear():清空所有值
遍歷操作:
keys():返回鍵名
values(): 返回鍵值
entries():返回鍵值對
foreach():使用**函式遍歷每個成員
let set = new set(['red', 'green', 'blue']);for(let item of set.keys())
//red
//green
//blue
for(let item of set.values())
//red
//green
//blue
let set = new set(['red', 'green', 'blue']);
// for...of 迴圈(set資料結構預設可遍歷,可以直接用for of 迴圈替換values())
for (let x of set) // red
// green
// blue
for(let item of set.entries())
//["red", "red"]
//["green", "green"]
//["blue", "blue"]
使用foreach迴圈
let set = new set([1, 4, 9]);set.foreach((value, key) => console.log(key + ' : ' +value))
//1 : 1
//4 : 4
//9 : 9
可以間接使用陣列中的方法
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結構:
weakset:
與set的區別:
weakset 的成員只能是物件,而不能是其他型別的值。
weakset 中的物件都是弱引用,即垃圾**機制不考慮 weakset 對該物件的引用
weakset中的一些方法:
add(), delete(), has()
ES6入門之set和map
es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s newset 2,3,5,4,5,2,2 map x ...
ES6入門之set和map
es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s new set 2,3,5,4,5,2,2 map x...
Es6之Set和Map結構
set 類似陣列,但是它的成員沒有重複值 let s new set let s2 new set 1,2,3,4,1,2,3 1,2,3,4,1,2,3 foreach x s.add x console.log s console.log s2 可以看出會去掉重複值 那我們就可以利用這個特性來去...