es6的Map()構造函數


普通的object對象是鍵值對的集合,但對於它的鍵卻有着嚴苛的要求,必須是字符串,這給我們平時帶來很多的不方便

Map函數類似於對象,但它是一個更加完美的簡直對集合,鍵可以是任意類型


 

  • set()方法可以向map實例對象中添加一組鍵值對
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a)//{{name:"ww",sex:"man"}=>"ABC"}

let b=new Map();
b.set('name','zhangsan');
console.log(b)//{'name'=>'zhangsan'}
  • get()方法可以向map對象獲取一個屬性值
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a.get(key))//'ABC'
  • has()方法檢測map對象中是否存在某個屬性,返回bool
  • delete()方法刪除map對象中某個鍵,返回bool
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a.has(key))//true
a.delete(key);
console.log(a.has(key))//false
  •  Map()函數接受數組作為參數,最少必須是二維雙數組,長度為2
let a=new Map([['name','wangwei'],['sex','man']]);
console.log(a)//{'name'=>'wangwei','sex'=>'man'}

let b=new Set([['a','A'],['b','B']]);
let c=new Map(b);
console.log(c)//{'a'=>'A','b'=>'B'}
  • Map()函數接受iterator接口,Map可以自己賦值,注意:不可以對象初始化Map
let b=new Set([['a','A'],['b','B']]);
let c=new Map(b);
let d=new Map(c);
console.log(d)
  • Map函數初始化,注意:數組引用必須相同才會覆蓋
let a=['a','A'];
let b=['a','A'];
let c=new Map();
c.set(a,1);
c.set(b,2);
console.log(c.get(a),c.get(b))// 1 2
let a=['a','A'];
let b=a;
let c=new Map();
c.set(a,1);
c.set(b,2);
console.log(c.get(a),c.get(b))// 2 2
  • size屬性獲取map對象成員個數
  • clear()屬性清除map對象的成員
  • forEach()遍歷
  • keys()
  • entries()
  • values()
let a=new Map([[1,'a'],[2,'b'],[3,'c']]);
for(let i of a){
    console.log(i)
}
//[1,'a'],[2,'b'],[3,'c']
for(let i of a.keys()){
    console.log(i)
}//1 2 3
for(let i of a.values()){
    console.log(i)
}//a b c
for(let [key,value] of a.entries()){
    console.log(key,value)
}//1 'a'  2  'b'   3  'c'
  • Map轉換為數組 方法 ...|...keys()|...values|...entries
let a=new Map([[1,'a'],[2,'b'],[3,'c']]);
let b=[...a];
console.log(b)//[[1,'a'],[2,'b'],[3,'c']]
let c=[...a.keys()];
console.log(c)//[1,2,3]
let d=[...a.values()];
console.log(d);//["a", "b", "c"]
let e=[...a.entries()];
console.log(e);//[[1,'a'],[2,'b'],[3,'c']]
  •  Map對象轉換為對象,注意:Map的鍵必須全部是字符串
let a=new Map([['a','A'],['b','B'],['c','C']]);
let b={};
for(let [key,value] of a){
    b[key]=value
}
console.log(b)//{a: "A", b: "B", c: "C"}
  • 對象轉換為Map
let a=new Map();
let b={a: "A", b: "B", c: "C"};
for(let i in b){
    a.set(i,b[i])
}
console.log(a)//{"a" => "A", "b" => "B", "c" => "C"}
  • JSON轉對象,可以先轉換為數組或者對象再轉換為map
  • weakMap()鍵必須是對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM