01 Es6 Set對象

Set 是Es6的內(nèi)置對象。我們和后端進(jìn)行數(shù)據(jù)交互的時(shí)候,后端返回的數(shù)據(jù)通常有兩種,數(shù)組對象。在Es6中又增加了兩種數(shù)據(jù)類型SetMap,我們可以這樣認(rèn)為SetMap就是一個(gè)殼,放的還是我們之前的數(shù)據(jù),比如,字符串、布爾值、數(shù)字等,只不過把他們包起來的并不是數(shù)組對象,而是SetMap兩種新的數(shù)據(jù)結(jié)構(gòu)了,切記,他們只是兩種新的數(shù)據(jù)結(jié)構(gòu),而不是新的數(shù)據(jù)類型。

Set 數(shù)據(jù)結(jié)構(gòu)構(gòu)造函數(shù)

1、它定義了Set數(shù)據(jù)結(jié)構(gòu)的用法;
2、它繼承Object的prototype上的屬性與方法;
3、部署了Iterator接;
4、它類似于數(shù)組,數(shù)據(jù)里不允許出現(xiàn)重復(fù)的值;

  • 對于原始類型及null、undefined來說,值相等就相等,也就是長得一樣就是重復(fù)的兩個(gè)值
  • 對于對象類型來說,值相等、引用相等才相等,也就是長得像不代表就是一個(gè)值
  • Set內(nèi)部對于重復(fù)的值使用類似“===”的形式比較,但是NaN等于NaN

總結(jié):
1、原始類型數(shù)據(jù)、null、undefined、NaN,長一樣的不會(huì)同時(shí)出現(xiàn);
2、對象類型數(shù)據(jù)長一樣的會(huì)同時(shí)出現(xiàn);

const arr=['a',1,true,null,undefined,NaN,[12],function(){return 1},{a:10,b:20},'a',1,true,null,undefined,NaN,[12],function(){return 1},{a:10,b:20}];
console.log(
    new Set(arr),    //數(shù)組去重
    [...new Set(arr)],
    Array.from(new Set(arr)),
    new Set(arr).size   //12
);
生成實(shí)例

1、new Set();
參數(shù)可選,如果有參數(shù)必需是一個(gè)數(shù)組,或者具有Iterator接口的數(shù)據(jù)。

console.log(
    new Set(),                                //Set(0) {}
    new Set() instanceof Set    ,   //true
    new Set([12,23]),                    //Set(2) {12, 23}
    new Set('luobing'),                 //Set(7) {"l", "u", "o", "b", "i","n","g"}
    
    //new Set(true)
    //new Set({1:'a',2:'b'})
    new Set(obj)
)
  Set(3) {li, li, li}
私有屬性(構(gòu)造函數(shù)屬性);

1、Set.name 構(gòu)造函數(shù)名字

共享屬性(實(shí)例屬性)

1、size 數(shù)據(jù)的個(gè)數(shù)
2、Symbol(Symbol.iterator) Iterator接口,遍歷器(指向values方法)

共享方法(實(shí)例方法)
                1、add()
                2、delete()
                3、has()
                4、clear()
                5、keys()
                6、values()
                7、entries()
                8、forEach()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容