ES6 新增的Map資料結構

2021-10-10 09:57:28 字數 1609 閱讀 4136

es6 新增的map資料結構

雖然網上很多講解  還是打算自己整理一下來加深印象

map可以接受陣列作為引數,陣列成員還是乙個陣列,其中有兩個元素,乙個表示鍵乙個表示值。

const map2 = new map([

['name', 'aissen'],

['age', 12]

])

map2  //   

map2.size //  2

map2.set('***','man') 

如果乙個鍵重複設定 後面的會覆蓋之前的值

map2.get('***') //  man

可以鏈式呼叫

map2.set().set().set().get()

map物件將 0 -0 +0視為同乙個值

map2.set(-0,'0相等');

map2.get(0); // 0相等

map2.get(+0); // 0相等

map視nan相等

map2.set(nan,'相等');

map2.get(number('xixixi')) // '相等

布林值true和'true'是兩個不同的鍵,undefined和null也是兩個不同的鍵

map2.has(key);

返回值:布林值,若存在於map中,則返回true

移除 map 物件中指定的元素。

map2.delete(key);

返回值:布林值,若為true,則刪除成功

map2.clear()

清除所有成員,沒有返回值

返回鍵名的遍歷器

map2.keys()

for(let key of map2.keys())

返回鍵值的遍歷器

map2.values()

for(let value of map2.values())

返回所有成員的遍歷器

map2.entries()

for(let item of map2.entries())

// 返回結構如 ['aa',11]

map2.foreach(callback[, thisarg])

thisarg:this,可選

var map = new map()

.set('aa',11)

.set('bb',22)

map.foreach(function (value,key,mymap))

// 11 "aa"  

// 22 "bb"  {"aa" => 11, "bb" => 22

map轉陣列

var map = new map()

.set('aa',11)

.set('bb',22)

.set('cc',33)

[...map] // [ ['aa',11],['bb',22],['cc',33] ]

[...map.keys()] //  ["aa", "bb", "cc"]

[...map.values()] // [11, 22, 33]

[...map.entries()] //  [ ['aa',11],['bb',22],['cc',33] ]

ES6之 Map資料結構

es6新增了 map資料結構,map物件儲存鍵值對,任何值 原始值或物件 都可以作為乙個鍵或乙個值。let map new map let obj map.set obj,myobject map.get obj myobject map.has obj true map.delete obj tr...

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

ES6 資料結構)

一 set 用法 set 對陣列進行轉化 新增重複元素不會生效 應用 去重複功能 轉化過程不會有資料型別的轉換 新增 刪除 判斷是否存在的方法 讀取 遍歷 的幾種方法 二 weakset 與set的區別 1.weakset 的元素只能是物件 2.weakset 的物件是弱應用 不會檢測是否在其他中用...