es6 Set 和Map 資料結構

2022-05-05 21:00:07 字數 2763 閱讀 4393

es6提供了新的資料結構set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

set 本身是乙個資料結構,用來生成set 資料結構。

const s = new

set();

[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);

陣列去重方法

function

dedupe(array)

dedupe([1,1,2,3]) //

[1,2,3]

set 結構的例項有四個遍歷方法,可以用於遍歷成員

keys() 返回鍵名的遍歷器 values() 返回鍵值的遍歷器,entries()、返回鍵值對的遍歷器 foreach() 使用**函式遍歷每乙個。

mapes6 提供了map 資料結構,它類似於物件,也就是鍵值對的集合。

const m = new

map();

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 的鍵都是字串,它可以轉為物件。

function

strmaptoobj(strmap)

return

obj;

}const mymap = new map().set('yes',true).set('no',false

);    strmaptoobj(mymap)

(4) 物件轉為 map

function

objtostrmap(obj)

return

strmap;

}objtostrmap()

(5)map 轉為json

一種情況是,map 的鍵名都是字串,這時可以選著轉為物件json

function

strmaptojson(strmap)

let mymap = new map().set('yes',true).set('no',false

);    strmaptojson(mymap)

另一種情況是map的鍵名有非字串,這時可以選擇轉換為陣列json

function

maptoarrayjson(map)

let mymap = new map().set(true,7).set(,['abc']);

maptoarrayjson(mymap)

(6)json 轉為map

正常情況下所有鍵名都是字串。

function

jsontostrmap(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 例項的方法分為兩大類 操作方法 用於運算元據 和遍歷方法 用於遍歷成員 四個操作方法 四個遍歷方...