第十一節 Set 和 WeakSet 資料結構

2021-08-18 11:57:18 字數 2161 閱讀 5835

這節學習set資料結構,注意這裡不是資料型別,而是資料結構。它是es6中新的東西,並且很有用處。set的資料結構是以陣列的形式構建的。

set 宣告

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

console.log(arr); //

set 和 array 的區別是 set 不允許內部有重複的值,如果有只顯示乙個,相當於去重。雖然 set 很像陣列,但是他不是陣列。

set 值的增刪查

增加 add:

在使用 array 時,可以用 push 進行新增。set 稍有不同,他用更語義化的 add 進行新增。

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

console.log(arr); //

arr.add('angle');

console.log(arr); //

刪除 delete

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

console.log(arr); //

arr.add('angle');

console.log(arr); //

arr.delete('angle');

console.log(arr); //

查詢 has

用has進行值的查詢,返回的是true或者false。

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

console.log(arr.has('sun')); //

true

刪除 clear

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

console.log(arr); //

arr.clear();

console.log(arr); //{}

set 迴圈

for…of… 迴圈

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

for (let item of arr)

size 屬性

size 屬性可以獲得 set 值的數量。

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

for (let item of arr)

console.log(arr.size);

foreach 迴圈

let arr=new set(['晴天','sun','綠樹','束縛','sun']);

arr.foreach((value) => console.log(value));

weakset 宣告
let weakobj = new weakset();

let obj = ;

weakobj.add(obj);

console.log(weakobj);

這裡需要注意的是,如果你直接在new 的時候就放入值,將報錯。

weakset裡邊的值也是不允許重複的,我們來測試一下。

let weakobj = new weakset();

let obj = ;

let obj1 = obj;

weakobj.add(obj);

weakobj.add(obj1);

console.log(weakobj);

總結:在實際開發中set用的比較多,weakset用的並不多,但是他對傳入值必須是物件作了很好的判斷,我們靈活應用還是有一定的用處的。

第十一節 過載 11

php4中已經有了過載的語法來建立對於外www.cppcns.com部物件模型的對映,就像j a和com那樣.php5帶來了強大的物件導向過載,允許程式設計師建立自定義的行為來訪問屬性和呼叫方法.過載可以通過 get,set,and call幾個特殊方法來進行.當zend引擎試圖訪問乙個成員並沒有找...

第十一節,命名空間namespace

命名空間可以把不同的方法分散到不同的檔案去實現,如果你會objective c,他的作用和裡面的類目有異曲同工之妙。當然了也有很多不同的地方,首先要明白的是,命名空間並不是乙個類,你擴充套件他的方法並不是和類目一樣在擴充套件乙個類的方法。如果你學過net開發,獲取你會對這個命名空間有更好的理解。na...

第十一節std atomic原子操作

互斥量 多執行緒程式設計中保護共享資料 鎖,操作共享資料,開鎖 有兩個執行緒,對乙個變數進行操作,這個執行緒讀,另乙個執行緒往變數中寫值。int atomvalue 5 讀執行緒a int tmpvalue atomvalue atomvalue代表的是多個執行緒之間要共享的變數寫執行緒b atom...