es6中的Set和Map內容整理

2022-10-11 08:33:09 字數 1673 閱讀 5605

set:是一種新的資料結構,類似於陣列,但是裡面的值都是唯一的

set本身是乙個建構函式,可以通過const set = new set()來建立乙個set型別的值,通過建構函式建立後,會得到set原型上的一些方法

ps:通過建構函式建立新物件的過程,開闢一塊新記憶體,建立乙個空物件,設定原型繼承原型上的方法,繫結this,執行建構函式中的方法,返回這個新物件

一般可以用set去除陣列中的重複元素:[...new set(array)],    array.from(new set(array))]

set上的一些方法:

add(): 新增元素

delete():刪除某個值

has(): 判斷set中是否有這個值

clear():清空所有值

遍歷操作:

keys():返回鍵名

values(): 返回鍵值

entries():返回鍵值對

foreach():使用**函式遍歷每個成員

let set = new set(['red', 'green', 'blue']);

for(let item of set.keys())

//red

//green

//blue

for(let item of set.values())

//red

//green

//blue

let set = new set(['red', 'green', 'blue']);

// for...of 迴圈(set資料結構預設可遍歷,可以直接用for of 迴圈替換values())

for (let x of set) // red

// green

// blue

for(let item of set.entries())

//["red", "red"]

//["green", "green"]

//["blue", "blue"]

使用foreach迴圈

let set = new set([1, 4, 9]);

set.foreach((value, key) => console.log(key + ' : ' +value))

//1 : 1

//4 : 4

//9 : 9

可以間接使用陣列中的方法

let set = new set([1, 2, 3]);

set = new set([...set].map(x => x * 2));

//返回set結構:

let set = new set([1, 2, 3, 4, 5]);

set = new set([...set].filter(x => (x % 2) == 0));

//返回set結構:

weakset:

與set的區別:

weakset 的成員只能是物件,而不能是其他型別的值。

weakset 中的物件都是弱引用,即垃圾**機制不考慮 weakset 對該物件的引用

weakset中的一些方法:

add(), delete(), has()

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

Es6之Set和Map結構

set 類似陣列,但是它的成員沒有重複值 let s new set let s2 new set 1,2,3,4,1,2,3 1,2,3,4,1,2,3 foreach x s.add x console.log s console.log s2 可以看出會去掉重複值 那我們就可以利用這個特性來去...