ES6之 Map資料結構

2021-08-28 13:16:07 字數 2343 閱讀 1209

es6新增了 map資料結構,map物件儲存鍵值對,任何值(原始值或物件)都可以作為乙個鍵或乙個值。

let map = new map();

let obj = ;

map.set(obj,'myobject');

map.get(obj); // "myobject"

map.has(obj) //true

map.delete(obj) //true

map.has(obj) // false

set(key,value):

set方法設定鍵名key對應的鍵值為value,然後返回整個 map 結構。

let map = new map();

map.set('dsssddddddddsdsdsdssfw',8);

map.set(,'ddsdsds');

get(key):

獲取key的值

map.get('dsssddddddddsdsdsdssfw')//8
has(key)

has方法返回乙個布林值,表示某個鍵是否在當前 map 物件之中。

map.has('dsssddddddddsdsdsdssfw'); //true
delete(key)

delete方法刪除某個鍵,返回true。如果刪除失敗,返回false。

map.delete('dsssddddddddsdsdsdssfw');

map.has('dsssddddddddsdsdsdssfw')//false

clear()

清空map物件

map.size // 2

map.clear()

map.size // 0

方法

作用keys()

返回鍵名的遍歷器

values()

返回鍵值的遍歷器

entries()

返回所有成員的遍歷器

foreach()

遍歷 map 的所有成員

const map = new map([

['f', 'no'],

['t', 'yes'],

]);for (let key of map.keys())

// "f"

// "t"

for (let value of map.values())

// "no"

// "yes"

for (let item of map.entries())

// "f" "no"

// "t" "yes"

// 或者

for (let [key, value] of map.entries())

// "f" "no"

// "t" "yes"

// 等同於使用map.entries()

for (let [key, value] of map)

// "f" "no"

// "t" "yes"

map轉為陣列

const mymap = new map()

.set(true, 7)

.set(, ['abc']);

[...mymap]

// [ [ true, 7 ], [ , [ 'abc' ] ] ]

陣列 轉為 map

new map([

[true, 7],

[, ['abc']]

])

map 轉為物件

function strmaptoobj(strmap) 

return obj;

}const mymap = new map()

.set('yes', true)

.set('no', false);

strmaptoobj(mymap)

物件轉為 map

function objtostrmap(obj) 

return strmap;

}objtostrmap()

參考:

ES6 新增的Map資料結構

es6 新增的map資料結構 雖然網上很多講解 還是打算自己整理一下來加深印象 map可以接受陣列作為引數,陣列成員還是乙個陣列,其中有兩個元素,乙個表示鍵乙個表示值。const map2 new map name aissen age 12 map2 map2.size 2 map2.set ma...

ES6學習之set和map資料結構

基本用法 es6提供了新的資料結構set。它類似陣列,但是成員都是唯一的,不允許重複。其本身是乙個建構函式,用來生成set資料結構。const set new set 1,2,3,4,4 const sets new set document.queryselectorall div 複製 set函...

ES6 資料結構)

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