一、set集合
建立set例項:
let set = new set();
1、特性:
a、set本身是乙個建構函式,用來生成set資料結構【模擬陣列結構】
b、set函式可以接受具有iterable介面的資料結構作為引數
c、set集合中的成員是唯一的【即不可重複】
2、set例項的相關屬性及方法
a、屬性
set.prototype.constructor:建構函式,預設就是set函式
set.prototype.size:返回set例項的元素的個數 【set.size】
b、方法
add(value):新增某個值,返回set集合本身
delete(value):刪除某個值,返回boolean型別
has(value):返回乙個布林值,表示該值是否在集合中
clear():清除所有成員,沒有返回值
keys() 【返回set例項中所有值組成的迭代器物件[和下面的values()是等同的]】
values() 【返回set例項中所有值組成的迭代器物件】
entries() 【返回set例項鍵值對組成的迭代器物件,物件裡面存放的是鍵值對形式的陣列】
foreach(function(value,key,set){}) 【使用**函式遍歷迭代器物件中的每個成員】
3、去除array中重複的元素
eg:let arr = [1,2,3,1,3];
console.log([...new set(arr)]); //[1,2,3]
二、map集合
建立map例項:
let map = new map();
1、特性:
a、map類似於物件,也是鍵值對的集合
b、map中的「鍵」的範圍不限於字串【object中鍵的表現形式】,各種型別的值(包括物件)都可以當作鍵
c、map可以接受乙個陣列作為引數,該陣列的成員是乙個表示鍵值對的陣列【可以接受乙個二維陣列:entries(obj)】
2、map例項的相關屬性及方法
a、屬性
map.prototype.size 返回map例項的元素的個數 【map.size】
b、方法
set(key, value) 【新增或更新對應key的value值,返回map集合自身】(集合有key值,更新;沒有,新增)
get(key) 【獲取key對應的value值,如果找不到key,返回undefined】
has(key) 【has方法返回乙個布林值,表示某個鍵是否在當前map物件之中
】delete(key) 【刪除key的元素,返回boolean型別】
clear() 【清除所有成員,沒有返回值】clear()
keys() 【返回集合中所有鍵名組成的迭代器物件】
values() 【返回集合中所有鍵值組成的迭代器物件】
entries() 【返回集合中所有鍵值對陣列組成的迭代器物件】
foreach(function(value,key,map){}) 【使用**函式遍歷迭代器物件中的每個成員】
三、iterator (遍歷器)
1、特性:
a、iterator是一種介面,為各種不同的資料結構,提供統一的訪問機制
b、任何資料結構只要部署iterator介面,就可以完成遍歷操作
2、作用:
a、為各種資料結構,提供乙個統一的、簡便的訪問介面
b、使得資料結構的成員能夠按某種次序排列
c、iterator介面主要供es6中的新的遍歷命令for...of迴圈使用
3、iterator 的遍歷過程
a、迭代器物件呼叫next()方法依次獲取到物件中的下乙個元素遍歷物件,並返回乙個物件
b、a中返回的物件value為獲取的元素,done為下乙個元素是否存在,若物件下乙個元素不存在則
eg:
var set = new set(['nzc',18]);let entries =set.entries();
console.log(entries.next());
// console.log(entries.next()); //
console.log(entries.next()); //
4、獲取iterator物件
var iterator = iterobj[symbol.iterator]();
5、原生具備 iterator 介面的資料結構
array 【陣列】
string 【字串】
函式的arguments物件 【函式引數組成的類陣列物件】
nodelist物件 【元素節點類陣列物件】
map 【map集合】
set 【set集合】
typedarray 【二進位制資料快取區的乙個物件】
es6 Set 和Map 資料結構
es6提供了新的資料結構set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set 本身是乙個資料結構,用來生成set 資料結構。const s new set 2,3,5,4,5,2,2,2 foreach x s.add x for let i of s 2 3 5 4 set 函式可以...
ES6 Set 和 Map 資料結構
let set new set 1,2,1 console.log set add 增加,返回增加後的set console.log set.add 3 delete 刪除,返回true或false console.log set.delete 2 true has 判斷是否存在某一項,返回true...
es6 set和map資料結構解析
set本身是乙個建構函式,用來生成set資料結構 就像array本身是乙個建構函式,用來生成陣列資料結構 set裡面的值不可以重複 進而引申出陣列去重的方法,new set 1,2,33,3,3,4,set也可以接收物件作為引數 function fin let s newset fin 5和 5 ...