ES6系列_12之map資料結構
阿新 • • 發佈:2018-12-06
1.map資料結構出現的原因?
JavaScript 的物件(Object),本質上是鍵值對的集合(Hash 結構),但是傳統上只能用字串當作鍵。這給它的使用帶來了很大的限制。為了能實現將物件作為鍵值對的key,ES6 提供了 Map 資料結構。它類似於物件,也是鍵值對的集合,但是“鍵”的範圍不限於字串,各種型別的值(包括物件)都可以當作鍵。也就是說,Object 結構提供了“字串—值”的對應,Map 結構提供了“值—值”的對應,是一種更完善的 Hash 結構實現。如果你需要“鍵值對”的資料結構,Map 比 Object 更合適。
(1)map結構: key=>value
Json和map格式的對比
map的效率和靈活性更好
例如常見的json物件格式:
let json = { sex:男'', age:18 } console.log(json.sex);//男
但是這種反應的速度要低於陣列和map結構。
let json = { sex:'男', age:18 } console.log(json.sex);//男 var map=new Map(); map.set(json,'student'); console.log(map);
結果為:
2.map的增刪查
(1)使用set增加值
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); console.log(map);
結果為:
(2)使用get取值
現在取person對應的值。
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); console.log(map.get("person"));
結果為:
(3)刪除delete
使用delete刪除指定key對應的值。
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); map.delete("person") console.log(map)
結果為:
(4)查詢是否存在has
通過key查詢是否存在,返回true或者false。
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); console.log(map.has('person'))//true console.log(map.has('test'))//false
(5)size屬性
size屬性可以獲得map中鍵值對的個數。
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); console.log(map.size)//1
(6)使用clear方法清除map中所有元素
let json = { sex:'男', age:18 } var map=new Map(); map.set('person',json); map.clear() console.log(map)//{}
結果為:{}