Set 結構資料

2021-09-24 22:39:33 字數 1911 閱讀 2328

const set = new set();

set.add(1);

set.add(2);

set.add(2);

console.log(set.size); // 2

console.log([...set]); // [1, 2]

上面的**可以看到,因為set是沒有重複值的,所以當新增兩個2的時候只加進去乙個2。這裡size是set例項的乙個屬性,返回set例項的成員總數。

另外,set還可以接受乙個陣列作為引數,用來初始化。

const setaarrray = new set([1, 2, 2, "2", 3, 3, 4, 5, nan, nan, {}, {}]);

console.log([...setaarrray]); //[1, 2, "2" 3, 4, 5, nan, {}, {}];

這個時候2和"2"都加進去了,是因為在set內部判斷兩個值是否相等用的是全等"==="。有一點要注意的是,向 set 加入值時認為nan等於自身,而精確相等運算子認為nan不等於自身。所以上面**中,新增兩個nan時,加進去乙個。上面新增兩個空物件時都加進去了,說明兩個空物件是不相等的。在set內部認為,兩個物件總是不等的。

const set = new set();

set.add(1);

set.add(2);

console.log(set.size); //2

console.log(set.has(1)); //true

console.log(set.has(2)); //true

console.log(set.has('2')); //false

set.delete(2);

console.log(set.size); //1

console.log(set.has(2)); //false

keys方法、values方法、entries方法返回的都是遍歷器物件。由於 set 結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同乙個值),所以keys方法和values方法的行為完全一致。下面**中entries方法返回的遍歷器,同時包括鍵名和鍵值,所以每次輸出乙個陣列,它的兩個成員完全相等。

const set = new set(["a", "b", "c"]);

for (let item of set.keys())

for (let item of set.values())

for (let item of set.entries())

const set = new set(["a", "b", "c"]);

for (let item of set)

const set = new set(["a", "b", "c"]);

set.foreach((value, key) => );

const array = [1, 2, 3, 4, 4, 3, 2, 3];

const resultarray = [...new set(array)];

console.log(resultarray); // [1, 2, 3, 4]

const str = 'abbbcc';

const resultstr = [...new set(str)].join('');

console.log(resultstr); // "abc"

大概就是這些,如果想知道得更詳細可以去檢視es6。位址 

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