es6 set和map資料結構解析

2021-10-11 17:40:31 字數 2443 閱讀 9954

set本身是乙個建構函式,用來生成set資料結構

就像array本身是乙個建構函式,用來生成陣列資料結構

set裡面的值不可以重複

進而引申出陣列去重的方法,[...new set([1,2,33,3,3,4,])

=>set也可以接收物件作為引數

function

fin(

)let s =

newset

(fin()

);

5和『5』是不同的值

set內部nan和nan是相等的

兩個物件總是不想等的,因為物件的值其實是位址

set結構的例項預設就是可以遍歷的,所以可以省略遍歷器方法,直接遍歷該物件

let set1 =

newset([

,)for(

let x of set1)

//foreach方法

set1.

foreach

((vlaue,key)

=>

//foreach方法的引數是鍵值鍵名,集合本身

舉例:

注意:關於filter裡面的箭頭函式,如果只要一條語句,不加大括號,可以不用返回值,如果加了大括號。就必須帶上return

另外,陣列的find引數是函式,cha找符合條件的值,includes判斷有沒有

//求兩陣列的交集

//輸出x的值

let arr1 =[1

,2,3

,4,5

];let arr2 =[3

,4,5

,6,7

];console.

log(arr1.

includes(1

));let set1 =

newset([

...arr1,

...arr2]);

let arr3 =

[...set1]

.filter

((value)

=>);

console.

log(arr3);}

//或者

let set3 =

newset([

...set2]

.filter

((x)

=>set1.

has(x)

;//求並集

let set3 =

newset([

...set1,

...set2]);

//差集

let set3 =

newset([

...set2]

.filter

(x)=>

!set1.

has(x)

;

如果想在遍歷的時候改變原來的set結構,需要使用map或者***array.from***

為什麼引入map

因為原本的物件只可以使用字串作為鍵名,引入map之後,鍵名型別多樣化

map的本質

set類似於陣列,map類似於物件,map本質是鍵值對的集合,map也不允許重複

map建構函式

傳入乙個陣列,陣列的元素是鍵值對,不是物件new map([['name','kek'],'name','kkke'])

裡面的值一定加上引號,因為作為陣列的值,加上引號才是字串

實際上執行的演算法

items.

foreach

((key,value)

=>

let map1 =

newmap();

map1.

set(obj,

'okok'

);

map的新增方法是set不是add,刪除delete,判斷has,獲取鍵名對應的值是get

map鍵的規則

型別不同,鍵就不同

對同乙個鍵賦值多次,後乙個覆蓋前乙個

set([

'a']

,'keke');

get(

['a'

])獲取undefine

因為兩次的[『a』]看起來是一樣的,但是由於是引用型別,位址不一樣

nan看作同乙個鍵

map的遍歷

keys 獲取鍵名集合,map.get('key')

values獲取值得集合

entries獲取鍵值對map.entries()或者直接遍歷forof和map也是獲取鍵值對

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類似與陣列,但是成員值唯一沒有重複!let arr 3,5,2,2,5,5 let unique new set arr 3,5,2 set 結構的例項有以下屬性。set 例項的方法分為兩大類 操作方法 用於運算元據 和遍歷方法 用於遍歷成員 四個操作方法 四個遍歷方...