成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

初探ES6中的Set和weakSet

afishhhhh / 2894人閱讀

摘要:對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用。不能重復(fù)獲取的值方法用來向一個(gè)對象的末尾添加一個(gè)指定的值。

Set 對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用。(不能重復(fù))
const set1=new Set([1,2,3,4,5,6]);
console.log(set1); //Set { 1, 2, 3, 4, 5, 6 }
獲取set的值
console.log([...set1])  //[ 1, 2, 3, 4, 5, 6 ]
set1.forEach((x)=>{
    console.log(x)  //1 2 3 4 5 6
})
for(let a of set1){
    console.log(a)  //1 2 3 4 5 6
}
add(value) 方法用來向一個(gè) Set 對象的末尾添加一個(gè)指定的值。
let mySet=new Set();
mySet.add(1);
mySet.add(2).add(3); //支持鏈?zhǔn)教砑?console.log(mySet) //Set { 1, 2, 3 }
clear()用來清空一個(gè)Set對象中的所有元素 返回undefined
let clearSet=new Set([9,8])
console.log(clearSet)   //Set { 9, 8 }
console.log(clearSet.clear())  //undefined
delete(value) 可以從一個(gè)set對象中刪除指定的元素 ,并返回true
let delSet=new Set(["hello","word"])
console.log(delSet.delete("hello"));   //true 
console.log(delSet.delete("hi"));   //false
console.log(delSet)  //Set { "word" }
has(value) 返回一個(gè)布爾值來指示對應(yīng)的值value是否存在Set對象中
let hasSet=new Set(["hi","word"])
console.log(hasSet.has("hi")); //true
console.log(hasSet.has("hello")); //false
forEach(callback) 方法根據(jù)集合中元素的順序,對每個(gè)元素都執(zhí)行提供的 callback 函數(shù)一次。
let forSet=new Set([100,200,300]);
forSet.forEach(x=>{
    console.log(x)  //100 200 300 
})
entries()轉(zhuǎn)換成數(shù)組迭代器
let entries=new Set(["foobar","baz"]);
let setIter=entries.entries();
console.log(setIter.next()) //{ value: [ "foobar", "foobar" ], done: false }
console.log(setIter.next()) //{ value: [ "baz", "baz" ], done: false }
console.log(setIter.next()) //{ value: undefined, done: true }  done==true 即結(jié)束
values() 返回一個(gè) Iterator對象
let value=new Set(["vue","react"]);
let setValue=value.values();
console.log(setValue.next());  //{ value: "vue", done: false }
console.log(setValue.next());  //{ value: "react", done: false }
console.log(setValue.next());  //{ value: undefined, done: true }
size 返回set對象的長度,類似數(shù)組的length
let size=new Set([1,2,3,{name:"1"}]);
console.log(size)  //Set { 1, 2, 3, { name: "1" } }
console.log(size.size); //4
WeakSet 對象是一些對象值的集合, 并且其中的每個(gè)對象值都只能出現(xiàn)一次.
它和 Set 對象的區(qū)別有兩點(diǎn):
WeakSet 對象中只能存放對象引用, 不能存放值, 而 Set 對象都可以.
WeakSet 對象中存儲的對象值都是被弱引用的, 如果沒有其他的變量或?qū)傩砸眠@個(gè)對象值, 則這個(gè)對象值會被當(dāng)成垃圾回收掉. 正因?yàn)檫@樣, WeakSet 對象是無法被枚舉的, 沒有辦法拿到它包含的所有元素.
使用weakSet
var ws = new WeakSet();
var obj={name:"obj"};
add(value)在WeakSet對象后面追加一個(gè)對象
ws.add(obj);
has(value)檢查是否存在該對象
console.log(ws.has(obj)) //true
delete(value)刪除weakSet種的對象
ws.delete(obj);
console.log(ws.has(obj)) //false

每天進(jìn)步一點(diǎn),希望大家喜歡,也希望喜歡的朋友點(diǎn)個(gè)贊,后續(xù)繼續(xù)更新...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93836.html

相關(guān)文章

  • es6 SetWeakSet

    摘要:返回一個(gè)布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。上面代碼中,方法返回的遍歷器,同時(shí)包括鍵名和鍵值,所以每次輸出一個(gè)數(shù)組,它的兩個(gè)成員完全相等。因此,適合臨時(shí)存放一組對象,以及存放跟對象綁定的信息。 Js大部分歷史時(shí)期都只存在一種集合類型,也就是數(shù)組類型。數(shù)組在 JS 中的使用正如其他語言的數(shù)組一樣,但缺少更多類型的集合導(dǎo)致數(shù)組也經(jīng)常被當(dāng)作隊(duì)列與棧來使用。數(shù)組只使用了數(shù)值...

    marser 評論0 收藏0
  • 細(xì)說es6中的SetMap

    摘要:返回一個(gè)布爾值,表示該值是否為的成員。返回鍵名的遍歷器返回鍵值的遍歷器返回鍵值對的遍歷器使用回調(diào)函數(shù)遍歷每個(gè)成員需要特別指出的是,的遍歷順序就是插入順序。該數(shù)組的所有成員,都會自動成為實(shí)例對象的成員。這意味著,數(shù)組的成員只能是對象。 1.Set ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。Set 本身是一個(gè)構(gòu)造函數(shù),用來生成 Set 數(shù)據(jù)結(jié)構(gòu)...

    Ryan_Li 評論0 收藏0
  • 帶你入門 JavaScript ES6 (五) 集合

    摘要:一概述集合是引入的新的內(nèi)置對象類型,其特點(diǎn)同數(shù)學(xué)意義的集合,即集合內(nèi)所有元素不重復(fù)元素唯一。數(shù)組集合對比數(shù)組和集合,數(shù)組可以加入重復(fù)數(shù)據(jù),而集合的所有元素是唯一的不允許重復(fù)。因此,適合臨時(shí)存放一組對象,以及存放跟對象綁定的信息。 本文同步帶你入門 帶你入門 JavaScript ES6 (五) 集合,轉(zhuǎn)載請注明出處。 前面我們學(xué)習(xí)了: for of 變量和擴(kuò)展語法 塊作用域變量和解構(gòu)...

    BetaRabbit 評論0 收藏0
  • ES6 - WeakSet

    摘要:這幾意味著,在初始化和調(diào)用的時(shí)候,都只能傳入對象類型的元素。如果給方法傳入非對象類型,會拋出錯(cuò)誤。 在我們進(jìn)入在WeakSet的使用之前,我們先來看一個(gè)用Set來存儲對象引用的例子: let set = new Set(); let key = {}; set.add(key); key = null; console.log(set.size); // 1 console.log([...

    Jiavan 評論0 收藏0
  • 深入理解:ES6中的SetMap數(shù)據(jù)結(jié)構(gòu),Map與其它數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換

    摘要:學(xué)習(xí)筆記工作中常用到的語法只是簡單提及和,今天有空于是寫了這篇文章深入理解中的和數(shù)據(jù)結(jié)構(gòu),與其它數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換。的提供了新的數(shù)據(jù)結(jié)構(gòu)。本身是一個(gè)構(gòu)造函數(shù),用來生成數(shù)據(jù)結(jié)構(gòu)。 文中的內(nèi)容主要是來自于阮一峰的《ES6標(biāo)準(zhǔn)入門》(第三版)。《學(xué)習(xí)ES6筆記──工作中常用到的ES6語法》只是簡單提及Set和Map,今天有空于是寫了這篇文章──《深入理解:ES6中的Set和Map數(shù)據(jù)結(jié)構(gòu),M...

    Cristalven 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<