ES6- - Map與Set

Map和Set 是 ES6 中新增的一種數據結構。Map爲相似於Object的鍵值對結構,Set爲成員惟一的類數組結構。以Map爲例介紹兩種數據結構的遍歷方法。for...of

var map = new Map([ ['age', 19], ['height', 180] ]);

或使用set()函數:var map = new Map();
map.set('age',19).set('height',180);

var set = new Set( [1, 2, 3, 4, 2, 1] ); //接收一個數組做爲初始化
[...set] //[1,2,3,4]
或使用add()函數: var set = new Set();
set.add(1).add(2);
 
//因爲 Set 結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同一個值),因此keys方法和values方法的行爲徹底一致。keysvalues
for (let key of map.keys()) { console.log(key); } 
for (let value of map.values()) { console.log(value); } for (let item of map.entries()) { console.log(`${ item[0] }: ${ item[1] }`); }
map.forEach((key, value, map) => { console.log(`${ key }: ${ value }`); }); // forEach 的第二個參數用來綁定this綁定 this var reporter = { report(key, value) { console.log(`${ key }: ${ value } by reporter object.`); } } map.forEach(function (key, value) {// 使用箭頭函數會致使這個 this 是 undefined 
this.report(key, value);
}, reporter)
//Set 結構沒有如下方法
for (let [key, value] of map.entries()) { console.log(`${ key }: ${ value }`); } for (let [key, value] of map) { console.log(`${ key }: ${ value }`); } 數據結構間的相互轉化:
Map->數組 [...map]
數組->Map new Map([1,2])
Map->object:

  for ( let [ key, value ] of map.entries() ){
    obj[key] = value;
  }javascript

Object->Map:

  let map1 = new Map();
  for ( let item in a ){
    map1.set( item,a[item] )
  }java

相關文章
相關標籤/搜索