ES6新增的資料結構Set和WeakSet
阿新 • • 發佈:2018-12-05
一、Set
ES6提供了新的資料結構Set,Set物件不是真正的陣列,可以用Array.from()方法吧Set物件轉化為真正的陣列。 可以用來儲存複雜資料型別(Object)或者基本資料型別
, 所有儲存的值都是唯一
的。 (Set是一種可遍歷的集合物件,可以和陣列進行比較理解)
Set物件下面的方法:
add(value):
新增某個value到Set物件裡面,返回Set結構本身。
delete(value):
刪除某個值,返回一個布林值,true表示刪除成功。
has(value):
返回一個布林值,表示引數value是否為Set的成員。
clear():
清除Set中所有成員,沒有返回值。
keys():
values():
返回一個鍵值的遍歷器entries() :
返回一個鍵值對的遍歷器forEach():
使用回撥函式遍歷每個成員.size:
獲取Set結構的長度
1、Set本身是一個建構函式,用來生成Set資料結構
let set1 = new Set();
set1.add(1);
set1.add("winne");
set1.add(2);
console.log(set1); // {1, "winne", 2}
console.log(set1.size); // 3
2、帶引數的初始化 ,可用於陣列去重
let arr = [1,2,3,1, 4,2,"1"];
let set2 = new Set(arr);
console.log(set2); // {1, 2, 3, 4, "1"}
let arr_unique = Array.from(set2);
console.log(arr_unique); // [1, 2, 3, 4, "1"]
二、WeakSet
參考資料:https://www.cnblogs.com/diligenceday/p/5479076.html#_label4
WeakSet其實就是弱型別的Set。
WeakSet物件是一些物件值的集合, 並且其中的每個物件值都只能出現一次,WeakSet只能存物件型別的元素
WeakSet物件的方法只有三個,而且WeakSet物件沒有.size屬性;
add(value)
delete(value)
has(value)
這三個方法的使用方式都和Set一樣。