1. 程式人生 > >ES6新數據類型map與set

ES6新數據類型map與set

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