Set資料結構的基本用法

2021-08-17 02:36:44 字數 1577 閱讀 4522

1.set基本用法

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

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

const s = new set();

[2, 3, 5, 4, 5, 2, 2].foreach(x => s.add(x));

for (let i of s)

// 2 3 5 4

上面**通過add方法向set結構加入成員,結果表明set結構不會新增重複的值。

set函式可以接受乙個陣列,或者具有(iterable)介面的其他資料結構作為引數,用來初始化。

// 例一

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

[...set]

// [1, 2, 3, 4]

// 例二

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

items.size // 5

// 例三

const set = new set(document.queryselectorall('div'));

set.size // 56

// 類似於

const set = new set();

document

.queryselectorall('div')

.foreach(div => set.add(div));

set.size // 56

上面**中,例一和例二都是set函式接受陣列作為引數,例三是接受類似陣列的物件作為引數。

上面**也展示了一種去除陣列重複成員的方法。

// 去除陣列的重複成員

[...new set(array)]

向 set 加入值的時候,不會發生型別轉換,所以5"5"是兩個不同的值。set 內部判斷兩個值是否不同,使用的演算法叫做「same-value-zero equality」,它類似於精確相等運算子(===),主要的區別是nan等於自身,而精確相等運算子認為nan不等於自身。

let set = new set();

let a = nan;

let b = nan;

set.add(a);

set.add(b);

set // set

上面**向 set 例項新增了兩個nan,但是只能加入乙個。這表明,在 set 內部,兩個nan是相等。

另外,兩個物件總是不相等的。

let set = new set();

set.add({});

set.size // 1

set.add({});

set.size // 2

上面**表示,由於兩個空物件不相等,所以它們被視為兩個值。

Set資料結構

1 es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值 set 本身是乙個建構函式,用來生成 set 資料結構。const s new set 2,3,5,4,5,2,2 foreach x s.add x for let i of s 2 354上面 通過add...

set資料結構

set 資料結構,類似陣列。所有的資料都是唯一的,沒有重複的值。它本身是乙個建構函式。屬性和方法 應用 var arr 1 1,1 3,4 5,3 5 資料去重 varset new set arr console.log set console.log set.size 4 console.log...

set資料結構

set類似於陣列,但是成員的值都是唯一的,沒有重複的值 const s1 newset console.log s1,size 0 const s2 newset a b console.log s2,size 2 const s2 newset a b a console.log s2,size ...