1. 程式人生 > >ES6中的Set和Map

ES6中的Set和Map

Set

Set是ES6中提供的一種新的資料結構。類似於陣列,但是成員值都是唯一的,不會重複。
它本身是一個建構函式,生成Set資料結構。

var s=new Set();

屬性:
Set.prototype.constructor:指向建構函式Set
Set.prototype.size:返回set例項的成員總數

方法:
add(value):新增value,並返回Set結構本身
delete(value):刪除value,返回布林值,表示是否刪除成功
has(value):返回布林值,表示value是否為set的成員
clear():清除所有成員

遍歷操作
key():返回鍵名的遍歷器
values():返回鍵值的遍歷器
entries():返回鍵值對的遍歷器
forEach():使用回撥函式遍歷每個成員

Map

Object,Map均為Hash結構(鍵值對集合)

區別:
Object鍵名只能是字串形式,Map的鍵名可以是任意型別(包括物件)。

總的來說,Map是一種更完善的Hash結構的實現。如果你需要“鍵值對”的資料結構,Map比Object更合適。

例項的屬性和方法:

size屬性 返回Map成員總數
set(key, value) 設定鍵值對,返回Map本身,所以可以鏈式
get(key) 讀取key對應的值,找不到返回undefined
has(key) 返回布林值,表示是否存在
delete(key) 刪除某鍵,返回布林值,表示是否成功刪除
clear() 清空所有成員,無返回值。

遍歷方法
keys()
values()
entries()
forEach(),接受第二個引數,繫結回撥函式的this