無序不可重複的集合
1.實例化數組
new Set(); new Set([]); new Set('terry');// t e r y
2.Set實例能夠調用的方法數據結構
Set 結構的實例有如下屬性。 Set.prototype.constructor:構造函數,默認就是Set函數。 Set.prototype.size:返回Set實例的成員總數。 Set 結構的實例有如下方法。 add(value):添加某個值,返回Set結構自己 delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。 has(value):返回一個布爾值,表示該值是否爲Set的成員。 clear():清除全部成員,沒有返回值。 keys():返回鍵名的遍歷器 values():返回鍵值的遍歷器 entries():返回鍵值對的遍歷器 forEach():使用回調函數遍歷每一個成員 Set自己就是就是一個構造函數,用來生成Set數據結構 let set = new Set(); set.add(1); //添加數據 set.add(2); set.add(3); set.add(2); console.log(set); //set{1,2,3}
應用:去除數組中重複元素的方法函數
let arr = [1,2.3,4,3,2,1]; let set = new Set(arr); let result = [...set]; //set轉換爲數組
Map能夠接受一個數組做爲參數,該數組的成員是一個個表示鍵值對的數組prototype
let map = new Map(); map.set('name','terry'); const map = new Map([ ['name', '張三'], ['title', 'Author'] ]);
Map 結構的實例有如下屬性。指針
Set.prototype.size:返回 Map 結構的成員總數。
Map 結構的實例有如下方法。code
set(key, value):set方法設置鍵名key對應的鍵值爲value,而後返回整個 Map 結構。若是key已經有值,則鍵值會被更新,不然就新生成該鍵。 get(key):get方法讀取key對應的鍵值,若是找不到key,返回undefined。 has(key):has方法返回一個布爾值,表示某個鍵是否在當前 Map 對象之中。 delete(key):delete方法刪除某個鍵,返回true。若是刪除失敗,返回false。 clear():清除全部成員,沒有返回值 keys():返回鍵名的遍歷器 values():返回鍵值的遍歷器 entries():返回鍵值對的遍歷器 forEach():使用回調函數遍歷每一個成員
遍歷器(Iterator)就是這樣一種機制。它是一種接口,爲各類不一樣的數據結構提供統一的訪問機制。任何數據結構只要部署Iterator接口,就能夠完成遍歷操做(即依次處理該數據結構的全部成員)對象
Iterator 的做用有三個:
Iterator 的遍歷過程:接口
默認Iterator接口部署
Iterator 接口的目的,就是爲全部數據結構,提供了一種統一的訪問機制,即for...of循環(詳見下文)。當使用for...of循環遍歷某種數據結構時,該循環會自動去尋找 Iterator 接口。一種數據結構只要部署了 Iterator 接口,咱們就稱這種數據結構是「可遍歷的」(iterable)。
能夠經過以下方法訪問Iterator對象get
var iterator = iterObj[Symbol.iterator]();
原生具有 Iterator 接口的數據結構以下
Array Map Set String TypedArray 函數的 arguments 對象 NodeList 對象