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