es6提供了新的資料結構set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值。
set 本身是乙個資料結構,用來生成set 資料結構。
const s = newset();
[2,3,5,4,5,2,2,2].foreach(x=>s.add(x));
for(let i of s)
//2 3 5 4
set 函式可以接受乙個陣列作為引數。
可以利用去除陣列重複成員的方法。
[...new set(array)] // 去除陣列重複變數成員
set 例項的屬性和方法
set 結構的例項有兩種屬性
set.prototype.constructor 建構函式,預設就是set 函式
set.prototype.size: 返回set 例項的成員總數。
set 例項方法分為兩大類,操作方法和遍歷方法。
add(value) : 新增某個值,返回set 結構本身,delete(value): 刪除某個值,返回布林值,
表示是否刪除成功。
has(value) 返回乙個布林值,表示該值是否為set 的成員。 clear(),清除所有成員,沒有返回值。
可以用 array.from 方法將set 結構轉為陣列
const item = new set([1,2,3,4,]);const array = array.from(items);
陣列去重方法
functiondedupe(array)
dedupe([1,1,2,3]) //
[1,2,3]
set 結構的例項有四個遍歷方法,可以用於遍歷成員
keys() 返回鍵名的遍歷器 values() 返回鍵值的遍歷器,entries()、返回鍵值對的遍歷器 foreach() 使用**函式遍歷每乙個。
mapes6 提供了map 資料結構,它類似於物件,也就是鍵值對的集合。
const m = newmap();
const o = ;
m.set(o,'content');
m.get(o)
//"content"
m.has(o) //
true
m.delete(o) //
true
m.has(o) //
false
例項的屬性和操作方法
1 size 屬性 返回map 結構的成員總數
2.set(key,value) 設定鍵名key對應的鍵值為value,然後返回整個map結構
3.get(key) ,get方法讀取key 對應的鍵值,如果找不到key,返回undefined。
4.has(key) 返回乙個布林值,表示某個鍵是否在當前map獨享之中.
5.delete(key) 方法刪除某個鍵,返回true 如果刪除失敗,返回false.
6.clear() 方法清除所有成員,沒有返回值。
map 結構提供三個便利器生成函式和乙個遍歷方法。
keys() 返回鍵名的遍歷器 values() 返回鍵值的遍歷器,entries()、返回鍵值對的遍歷器 foreach() 使用**函式遍歷每乙個。
與其他資料結構之間的轉換
(1)map 轉為陣列,前面已經提過,map 轉為陣列最方便的方法,就是使用擴充套件運算子
const mymap = new map().set(true,7).set(,['abc']);[...mymap]
(2) 陣列轉為map 將陣列傳入map 建構函式,就可以轉為map.
new map([[true,7],[,['abc']]])
(3) map 轉為物件,如果所有map 的鍵都是字串,它可以轉為物件。
functionstrmaptoobj(strmap)
return
obj;
}const mymap = new map().set('yes',true).set('no',false
); strmaptoobj(mymap)
(4) 物件轉為 map
functionobjtostrmap(obj)
return
strmap;
}objtostrmap()
(5)map 轉為json
一種情況是,map 的鍵名都是字串,這時可以選著轉為物件json
functionstrmaptojson(strmap)
let mymap = new map().set('yes',true).set('no',false
); strmaptojson(mymap)
另一種情況是map的鍵名有非字串,這時可以選擇轉換為陣列json
functionlet mymap = new map().set(true,7).set(,['abc']);maptoarrayjson(map)
maptoarrayjson(mymap)
(6)json 轉為map
正常情況下所有鍵名都是字串。
functionjsontostrmap(jsonstring)
jsontostrmap('')
ES6 Set 和 Map 資料結構
let set new set 1,2,1 console.log set add 增加,返回增加後的set console.log set.add 3 delete 刪除,返回true或false console.log set.delete 2 true has 判斷是否存在某一項,返回true...
es6 set和map資料結構解析
set本身是乙個建構函式,用來生成set資料結構 就像array本身是乙個建構函式,用來生成陣列資料結構 set裡面的值不可以重複 進而引申出陣列去重的方法,new set 1,2,33,3,3,4,set也可以接收物件作為引數 function fin let s newset fin 5和 5 ...
ES6 Set與Map資料結構
set 例項的屬性和方法 set類似與陣列,但是成員值唯一沒有重複!let arr 3,5,2,2,5,5 let unique new set arr 3,5,2 set 結構的例項有以下屬性。set 例項的方法分為兩大類 操作方法 用於運算元據 和遍歷方法 用於遍歷成員 四個操作方法 四個遍歷方...