ES6 Map數據結構

一、Map的基本用法
JavaScript對象本質上是鍵值對的集合,但是傳統上只能用字符串當作鍵,在使用上會有很大的限制。
ES6提供了Map數據結構,類似於對象,也是鍵值對的集合,但是鍵不止能用字符串,各種類型的值都可以當作鍵,並且鍵不能重複。

創建Map

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);

Map與Set一樣都是構造函數,使用new關鍵字創建實例。
Map傳遞的參數一般是數組,事實上,不僅僅是數組,任何具有 Iterator 接口、且每個成員都是一個雙元素的數組的數據結構都可以當作Map構造函數的參數。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.set("z","123");

上面代碼中對鍵名爲’z’的鍵進行了多次賦值,所以後面的值將覆蓋前面的值。

二、實例的屬性和操作方法
size
size屬性返回 Map 結構的成員總數。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.size;//3

set()
set方法設置鍵名key對應的鍵值爲value,然後返回整個 Map 結構。如果key已經有值,則鍵值會被更新,否則就新生成該鍵。
set方法返回當前的Map對象。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.set("k","852");
map.set("z","741");//鍵已經有值,重新賦值

get()
get方法讀取key對應的鍵值,如果找不到key,返回undefined。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.get("z");//789
map.get("k");//undefined

has()
has方法返回一個布爾值,表示某個鍵是否在當前 Map 對象之中。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.has("z");//true
map.has("k");//false

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

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.delete("x");//true
map.delete("a");//false

clear()
clear方法清除所有成員,沒有返回值。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
map.clear();
map.size;//0

forEach()
遍歷 Map 的所有成員。forEach方法還可以接受第二個參數,用來綁定this。

const map = new Map([
	["x",123],
	["y",456],
	["z",789]
]);
 map.forEach((value,key,map) => {
    console.log(value,key,map)
    // value : 值
    // key : 鍵
    // map 對象本身
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章