JavaScript中有map對象;map對象保存鍵值對,是鍵值對的集合,map對象存有鍵值對時,其中的鍵可以是任何數(shù)據(jù)類型,map對象記得鍵的原始插入順序并且具有表示映射大小的屬性,能夠使用對象作為鍵是Map的一個重要特性。
本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。
javascript中有map對象
Map 對象存有鍵值對,其中的鍵可以是任何數(shù)據(jù)類型。
Map 對象記得鍵的原始插入順序。
Map 對象具有表示映射大小的屬性。
Map 對標(biāo)的是 Object,是一種類似于對象的鍵值對數(shù)據(jù)結(jié)構(gòu)
- 不同于Object 的是Map 的鍵可以為任意類型的值(null 會被當(dāng)做 undefined),而不僅僅為字符串
- Map 的鍵值是有序的,可通過 size 獲取長度
- Map 在頻繁增刪鍵值對的場景下會有一些性能優(yōu)勢
let map = new Map([ ["姓名", "張三"], ["年齡","18"], [null, null], [undefined, null]])// 類似于:let obj = { '姓名': '張三', '年齡': 18, 'null': null, 'undefined': null}map.set(obj, 'new obj')console.log(...map)
操作方法
方法/屬性 | 描述 |
---|---|
size | 屬性,獲取當(dāng)前Map對象的長度,同數(shù)組的 length |
set(key,value) | 向當(dāng)前Map對象中添加一個值,返回的Map對象,支持鏈?zhǔn)綄懛?/td> |
get(key) | 通過key找到value(key為對象時,必須為同一對象的引用),如果找不到,返回undefined |
delete(key) | 刪除當(dāng)前Map對象中的一個值,返回一個布爾值,表示是否刪除成功 |
has(key) | 檢測這個value是否是當(dāng)前Map對象的一個元素,通過返回的布爾值表示 |
clear() | 清除當(dāng)前Map對象所有元素,沒有返回值 |
Map 遍歷方法
方法/屬性 | 功能介紹 |
---|---|
keys() | 返回該Set對象鍵名的遍歷器 |
values() | 返回該Set對象鍵值的遍歷器 |
entries() | 返回該Set對象鍵值對的遍歷器 |
forEach() | 使用回調(diào)函數(shù)遍歷該Set對象的每個元素,可以接受第二個參數(shù),用來綁定this |
for(let item of map.entries()) { console.log(item[0], item[1])}// 等同于for(let [key, value] of map) { console.log(key, value)}map.forEach((value, key, map)=> { console.log(key, value)})
【