ES6新數據類型map與set
阿新 • • 發佈:2018-09-05
iterator 重復 keys iter ear map() for symbol 映射
一、map,簡單的鍵值對映射,具有很快的查找速度
1. 初始化map,map的鍵名可以使用其他數據類型,對象的屬性名只能使用字符串或symbol
使用二維數組
var m = new Map([[‘name‘, ‘LQW‘], [‘age‘, 23], [123, ‘我的鍵名是數字類型‘]]);
m.get(‘name‘); // LQW
初始化一個空Map
var m = new Map();
m.set(‘name‘, ‘LQW‘);
m.set(‘age‘, 23);
m.set(123, ‘我的鍵名是數字類型‘);
m.get(123); // 我的鍵名是數字類型
備註:由於一個key只能對應一個value,所以重復賦值後面的會覆蓋前面的。
如果Map的鍵是一個簡單類型的值(數字、字符串、布爾值),則只要兩個值嚴格相等,Map將其視為一個鍵,包括0和-0。另外,雖然NaN不嚴格相等於自身,但Map將其視為同一個鍵。
2.map的方法
var m = new Map();
設置鍵值 m.set(key,value);
獲取鍵值 m.get(key);
刪除鍵值 m.delete(key);
移除所有的鍵值 m.clear();
獲取鍵的個數 m.size;
判斷鍵值是否存在 m.has(key);
獲取所有的鍵名(Iterator對象:可以使用for..of進行叠代的對象)m.keys();
獲取所有的鍵值(Iterator對象:可以使用for..of進行叠代的對象)m.values();
二、set,與map類似,也是一組key的集合,但是沒有value,類似於數組,並且不能存儲重復的key
1.初始化set
var s = new Set();s.add(4);
var s = new Set([1, 2, 3]);
2. set方法
添加key s.add(key);
刪除key s.delete(key);
判斷鍵值是否存在 s.has(key);
移除所有的鍵值 s.clear();
ES6新數據類型map與set