Set Es6新的資料結構

2022-08-28 09:03:06 字數 2518 閱讀 5184

新的資料結構set

set例項的屬性和方法

1)set結構的例項有以下屬性

set.prototype.constructor: 建構函式,預設就是set函式

set.prototype.size:返回set例項的成員總數

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

操作方法(用於運算元據)

-add(value): 新增某個值,返回set結構本身。

-delete(value):刪除某個值,返回乙個布林值,標書刪除是否成功

-has(value):返回乙個布林值,表示該值是否為set的成員

-clear():清除所有成員,沒有返回值

let s2 = new set();

s2.add(1).add(2).add(2)

console.log(s2.size);

console.log(s2.has(1));

console.log(s2.has(2));

console.log(s2.has(3));

s2.delete(2);

console.log(s2.has(2));

遍歷方法(用於遍歷成員)

-keys():返回鍵名的遍歷器;

-values():返回鍵值得遍歷器;

-entries():返回鍵值對的遍歷器:

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

注:需要特別指出的是,set的遍歷順序就是插入順序。這個特性有時非常有用,比如使用 set 儲存乙個**函式列表,呼叫時就能保證按照新增順序呼叫。

由於 set 結構沒有鍵名,只有鍵值(或者說鍵名和鍵值是同乙個值),所以keys方法和values方法的行為完全一致。

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

for(let item of set5.keys())

for(let item of set5.values())

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

-for...of....

for(let x of set5)

-foreach()

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

遍歷的應用

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

let arr = [...set6];

console.log(arr);

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

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

console.log(unique);

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

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

console.log(set7)

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

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

/*並集*/

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

/*交集*/

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

/*差集*/

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

去除陣列中重複成員的方法

function dedepe(array)

console.log(dedepe([1, 1, 2, 3]));

3)注意點:set結構不會新增重複的值

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

兩個nan是相等的 只能加入乙個

let set3 = new set();

let a = nan;

let b = nan;

set3.add(a);

set3.add(b);

console.log(set3);

兩個物件是不相等的

let set4 = new set();

set4.add({});

console.log(set4.size);

set4.add({});

console.log(set4.size);

新的資料結構Set

一種新的資料解構 set 成員值是唯一的 let s new set 1,2,3 s.add imooc add set 增加 鏈式操作 s.delete 2 刪除 s.clear 清空所有資料 console.log s.has 1 判斷set裡是否有某乙個值 返回布林值 console.log ...

資料結構6 串

串是一種特殊的線性表,串中每個資料元素都是乙個單字元,對串進行操作時,經常將若干字元作為乙個整體進行處理。s是串名,引號不屬於串的內容。串賦值strassign sqstring s1,sqstring s2 求串長strlength sqstring s 串比較strcompare sqstrin...

資料結構實驗6

因為精度問題,請使用double存資料。要求建立棧類,採用陣列描述 計算數學表示式的值。輸入數學表示式,輸出表示式的計算結果。數學表示式由單個數字和運算子 構成,例如 2 3 4 5 6 4。假定表示式輸入格式合法。格式輸入 第一行乙個整數n 1 n 100 代表表示式的個數。接下來n行,每行乙個表...