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 的物件是弱應用 不會檢測是否在其他中用...