ES6 Set與Map資料結構

2022-09-06 10:00:15 字數 1891 閱讀 3657

set 例項的屬性和方法

set類似與陣列,但是成員值唯一沒有重複!

let arr = [3, 5, 2, 2, 5, 5];

let unique = [...new set(arr)];

// [3, 5, 2]

set 結構的例項有以下屬性。

set 例項的方法分為兩大類:操作方法(用於運算元據)和遍歷方法(用於遍歷成員)

四個操作方法:

四個遍歷方法:

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

for (let item of set.entries())

// ["red", "red"]

// ["green", "green"]

// ["blue", "blue"]

因此使用 set 可以很容易地實現並集(union)、交集(intersect)和差集(difference)。

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

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

// 並集

let union = new set([...a, ...b]);

// set

// 交集

let intersect = new set([...a].filter(x => b.has(x)));

// set

// 差集

let difference = new set([...a].filter(x => !b.has(x)));

// set

weakset與set相似都是建構函式,值都是乙個集合,但是他的成員必須是物件

map資料結構克服了物件裡面鍵值對鍵必須是字串得限制

map建構函式的鍵值對的鍵可以是任意資料結構,map實列有以下幾個屬性:

const m = new map();

m.set('edition', 6) // 鍵是字串

m.set(262, 'standard') // 鍵是數值

m.set(undefined, 'nah') // 鍵是 undefined

const map = new map([

['f', 'no'],

['t', 'yes'],

]);for (let key of map.keys())

// "f"

// "t"

for (let value of map.values())

// "no"

// "yes"

for (let item of map.entries())

// "f" "no"

// "t" "yes"

// 或者

for (let [key, value] of map.entries())

// "f" "no"

// "t" "yes"

// 等同於使用map.entries()

for (let [key, value] of map)

// "f" "no"

// "t" "yes"

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資料結構

set 本身是乙個建構函式,用來生成 set 資料結構。let set new set set 函式可以接受乙個陣列作為引數,用來初始化。但是成員中的值都是唯一的。沒有重複的值 let se new set let arr 2,3,4,5,6,2,3,4,5,6 arr.foreach item s...