1. 程式人生 > >ES6系列_12之map資料結構

ES6系列_12之map資料結構

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)//{}

結果為:{}