ES6 Set和Map集合 六

2022-08-24 11:42:13 字數 2499 閱讀 7819

一、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 ...