Set資料結構

2021-08-09 20:25:27 字數 2341 閱讀 2831

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 結構不會新增重複的值。

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

2、另一種種去除陣列重複成員的方法

// 去除陣列的重複成員

[...

newset(array)]

3、資料型別

向 set 加入值的時候,不會發生型別轉換,所以5和」5」是兩個不同的值。set 內部判斷兩個值是否不同,使用的演算法叫做「same-value 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

4、set的方法

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

set 例項的方法分為兩大類:操作方法(用於運算元據)和遍歷方法(用於遍歷成員)。下面先介紹四個操作方法

s.add(1).add(2).add(2);

// 注意2被加入了兩次

s.size // 2

s.has(1) // true

s.has(2) // true

s.has(3) // false

s.delete(2);

s.has(2) // false

對比一下object&set的區別

// 物件的寫法

const properties = ;

if (properties[somename])

// set的寫法

const properties = new set();

properties.add('width');

properties.add('height');

if (properties.has(somename))

這提供了陣列去重的另一種方式

function

dedupe

(array)

dedupe([1, 1, 2, 3]) // [1, 2, 3]

遍歷操作

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"]

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

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

// 1 : 1

// 4 : 4

// 9 : 9

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

Set資料結構

感覺跟python裡的set集合差不多啊 都可以去重 但是es6裡的set實際上是物件,裡面有鍵值對 建立let a new set 1,2,3 或者 let a new set 新增資料 let a new set 1,2,3 a.add 4 console.log a set 4 1,2,3,4...