ES6中set與map的使用和操作方法

2021-10-07 19:21:26 字數 1371 閱讀 6316

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

set函式可以接受乙個陣列(或類似陣列的物件)作為引數,用來初始化。

// 例一

var set =

newset([

1,2,

3,4,

4]);

[...set]

// [1, 2, 3, 4]

var s =

newset()

;[2,

3,5,

4,5,

2,2]

.map

(x =

> s.

add(x));

for(let i of s)

// 2 3 5 4

在set內部,兩個nan是相等。兩個物件總是不相等的。可以用length來檢測

四個操作方法:

add(value):新增某個值,返回set結構本身。

delete(value):刪除某個值,返回乙個布林值,表示刪除是否成功。

has(value):返回乙個布林值,表示該值是否為set的成員。

clear():清除所有成員,沒有返回值

set內部的元素可以遍歷for…of…

map結構提供了「值—值」的對應,是一種更完善的hash結構實現。如果你需要「鍵值對」的資料結構,map比object更合適。它類似於物件,也是鍵值對的集合,但是「鍵」的範圍不限於字串,各種型別的值(包括物件)都可以當作鍵。

var m =

newmap()

;var o =;m.

set(o,

"content")m.

get(o)

// "content"

m.has

(o)// true

m.delete

(o)// true

m.has

(o)// false

注意,只有對同乙個物件的引用,map結構才將其視為同乙個鍵。這一點要非常小心。

var map =

newmap()

;map.

set(

['a'],

555)

;map.

get(

['a'])

// undefined

上面**的set和get方法,表面是針對同乙個鍵,但實際上這是兩個值,記憶體位址是不一樣的,因此get方法無法讀取該鍵,返回undefined。

如果map的鍵是乙個簡單型別的值(數字、字串、布林值),則只要兩個值嚴格相等,map將其視為乙個鍵,包括0和-0。另外,雖然nan不嚴格相等於自身,但map將其視為同乙個鍵。

es6中的Set和Map內容整理

set 是一種新的資料結構,類似於陣列,但是裡面的值都是唯一的 set本身是乙個建構函式,可以通過const set new set 來建立乙個set型別的值,通過建構函式建立後,會得到set原型上的一些方法 ps 通過建構函式建立新物件的過程,開闢一塊新記憶體,建立乙個空物件,設定原型繼承原型上的...

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s newset 2,3,5,4,5,2,2 map x ...

ES6入門之set和map

es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set函式可以接受乙個陣列 或類似陣列的物件 作為引數,用來初始化。例一 var set new set 1,2,3,4,4 set 1,2,3,4 var s new set 2,3,5,4,5,2,2 map x...