最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的Set數(shù)據(jù)結(jié)構(gòu)詳解

 更新時(shí)間:2022年01月05日 17:28:58   作者:CSPsy  
這篇文章主要為大家介紹了JavaScript的Set數(shù)據(jù)結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

1. 什么是 Set

Set 可以簡(jiǎn)單的看作是數(shù)學(xué)上的集合。

它是一系列無(wú)序,沒(méi)有重復(fù)數(shù)值的數(shù)據(jù)集合。

2. Set 構(gòu)造函數(shù)

對(duì)于 Set 的構(gòu)造函數(shù)的參數(shù),可以傳遞以下幾種形式。

2.1) 數(shù)組

const s = new Set([1, 2, 1]);
console.log(s);

在這里插入圖片描述

這里傳遞了一個(gè)數(shù)組[1, 2, 1]作為參數(shù),由于 Set 是無(wú)重復(fù)數(shù)值的集合,所以第三個(gè) 1 自動(dòng)刪除了。

2.2) 字符串

const s = new Set("Hello World!");
console.log(s);

在這里插入圖片描述

2.3) arguments

function fun() {
    const s = new Set(arguments);
    console.log(s);
}

fun(1, 2, 3);

在這里插入圖片描述

2.4) NodeList

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>set</title>
</head>
<body>
    <p>1</p>
    <p>2</p>
    <p>3</p>
    
    <script>
        const s = new Set(document.querySelectorAll('p'));
        console.log(s);
    </script>
</body>
</html>

在這里插入圖片描述

這里將三個(gè)p標(biāo)簽的引用放進(jìn)了Set s中;

當(dāng)我們要用的時(shí)候,就可以遍歷這個(gè) Set,然后分別將p標(biāo)簽的引用取出來(lái),然后就可以對(duì)p標(biāo)簽進(jìn)行修改了。

2.5)  Set

const s1 = new Set([1, 2, 3]);
const s2 = new Set(s1);
console.log(s2);

在這里插入圖片描述

這里相當(dāng)于把s1復(fù)制過(guò)去,給了s2,不過(guò)它們不是同一個(gè)Set

console.log(s1 === s2);

在這里插入圖片描述

3. Set 的實(shí)例屬性和方法

Set 的屬性,有一個(gè)屬性size,用來(lái)存儲(chǔ)它的成員個(gè)數(shù)

const s = new Set([1, 2, 3]);
console.log(s.size);

在這里插入圖片描述

Set的方法

  • add

給 Set 中添加成員

const s = new Set([1, 2, 3]);
// 它的參數(shù)只能傳一個(gè)
s.add(5);
console.log(s);
// 可以連綴 add
s.add(7).add(9);
console.log(s);

在這里插入圖片描述

  • delete

用來(lái)刪除 Set 中的成員

const s = new Set([1, 2, 3]);
s.delete(2);
// 如果要?jiǎng)h除的東西在 Set 中找不到,將什么也不會(huì)發(fā)生,也不會(huì)報(bào)錯(cuò)
s.delete(5);
console.log(s);

在這里插入圖片描述

  • has

用來(lái)判斷 Set 是否含有某個(gè)成員

const s = new Set([1, 2, 3]);
console.log(s.has(1));
console.log(s.has(5));

在這里插入圖片描述

  • clear

將會(huì)刪除 Set 的所有成員

const s = new Set([1, 2, 3]);
s.clear();
console.log(s);

在這里插入圖片描述

4. Set 的成員訪問(wèn)

它的成員訪問(wèn)要通過(guò) forEach 方法實(shí)現(xiàn),遍歷 Set,它的遍歷是按成員的添加順序來(lái)進(jìn)行遍歷的。

它有兩個(gè)參數(shù),第一個(gè)參數(shù)為回調(diào)函數(shù),第二個(gè)參數(shù)設(shè)定回調(diào)函數(shù)中this指向什么,即

s.forEach(回調(diào)函數(shù), 回調(diào)函數(shù)的指向)

我們先來(lái)看第一個(gè)參數(shù):

對(duì)于第一個(gè)參數(shù)回調(diào)函數(shù),它有三個(gè)參數(shù):

s.forEach(function(value, key, set){
	value 就是 Set 的成員
	在 Set 中,value 和 key 是相等的
	set 就是前面Set的本身,即這里 set === s
});

通過(guò)一個(gè)例子理解一下:

const s = new Set([1, 2, 3]);
s.forEach(function(value, key, set) {
    console.log(value, key, value === key);
    console.log(set, set === s);
});

在這里插入圖片描述

再來(lái)看第二個(gè)參數(shù):

const s = new Set([1, 2, 3]);
s.forEach(function(value, key, set) {
    console.log(this);
}, document);

在這里插入圖片描述

5. Set 的注意事項(xiàng)

Set 對(duì)重復(fù)值的判斷基本遵循嚴(yán)格相等===的判斷

不過(guò)對(duì)于NaN,在 Set 中,NaN 等于 NaN

6. Set 的使用場(chǎng)景

數(shù)組去重

let arr = [1, 2, 1];
const s = new Set(arr);
arr = [...s];
// 也可以合成一句
// arr = [...new Set(arr)];
console.log(arr);

在這里插入圖片描述

字符串去重

let str = "11231131242";
const s = new Set(str);
str = [...s].join("");
// 也可以寫(xiě)成一句
// str = [...new Set(str)].join("");
console.log(str);

在這里插入圖片描述

存放 DOM 元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>set</title>
</head>
<body>
    <p>1</p>
    <p>2</p>
    <p>3</p>
    
    <script>
        const s = new Set(document.querySelectorAll('p'));
        s.forEach((elem) => {
            console.log(elem)
        });
    </script>
</body>
</html>

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • JavaScript將頁(yè)面表格導(dǎo)出為Excel的具體實(shí)現(xiàn)

    JavaScript將頁(yè)面表格導(dǎo)出為Excel的具體實(shí)現(xiàn)

    如何將頁(yè)面表格導(dǎo)出為Excel,這在日常工作中很常見(jiàn),下面為大家詳細(xì)的介紹下使用JavaScript是如何實(shí)現(xiàn)的
    2013-12-12
  • 值得分享和收藏的Bootstrap學(xué)習(xí)教程

    值得分享和收藏的Bootstrap學(xué)習(xí)教程

    這絕對(duì)是一套值得分享和大家收藏的Bootstrap學(xué)習(xí)教程,完整的知識(shí)體系,系統(tǒng)的學(xué)習(xí)資料,幫助大家開(kāi)啟Bootstrap學(xué)習(xí)之旅,享受Bootstrap帶給大家的奇妙樂(lè)趣
    2016-05-05
  • js中split函數(shù)的使用方法說(shuō)明

    js中split函數(shù)的使用方法說(shuō)明

    本篇文章主要是對(duì)js中split函數(shù)的使用方法進(jìn)行了說(shuō)明介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12
  • JS中的回調(diào)函數(shù)(callback)講解

    JS中的回調(diào)函數(shù)(callback)講解

    回調(diào)函數(shù)是一段可執(zhí)行的代碼段,它作為一個(gè)參數(shù)傳遞給其他的代碼,其作用是在需要的時(shí)候方便調(diào)用這段(回調(diào)函數(shù))代碼,這篇文章主要介紹了JS中的?回調(diào)函數(shù)(callback),需要的朋友可以參考下
    2022-12-12
  • javascript框架設(shè)計(jì)之瀏覽器的嗅探和特征偵測(cè)

    javascript框架設(shè)計(jì)之瀏覽器的嗅探和特征偵測(cè)

    這篇文章主要介紹了javascript框架設(shè)計(jì)之瀏覽器的嗅探和特征偵測(cè)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • await?Streaking解決原理示例詳解

    await?Streaking解決原理示例詳解

    這篇文章主要為大家介紹了await?Streaking解決原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼

    JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼,可實(shí)現(xiàn)頁(yè)面元素的3D旋轉(zhuǎn)變換效果,涉及JavaScript動(dòng)態(tài)數(shù)學(xué)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下
    2015-09-09
  • JavaScript中常見(jiàn)的繼承方式總結(jié)

    JavaScript中常見(jiàn)的繼承方式總結(jié)

    這篇文章主要和大家詳細(xì)介紹了JavaScript中常見(jiàn)的幾種繼承方式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定幫助,需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容
    2022-11-11
  • javascript實(shí)現(xiàn)漂亮的拖動(dòng)層,窗口拖拽特效

    javascript實(shí)現(xiàn)漂亮的拖動(dòng)層,窗口拖拽特效

    一個(gè)可關(guān)閉、可隨意拖動(dòng)位置的網(wǎng)頁(yè)彈出層代碼,美化的相當(dāng)漂亮,簡(jiǎn)潔實(shí)用,還可拖動(dòng)改變大小,通過(guò)八個(gè)方向改變大小,學(xué)習(xí)這類特效編寫(xiě)的網(wǎng)頁(yè)設(shè)計(jì)者可參閱一下
    2015-04-04

最新評(píng)論

加查县| 仲巴县| 张掖市| 宁陕县| 滦平县| 易门县| 东乡县| 沙田区| 上林县| 鸡西市| 怀集县| 正安县| 虹口区| 太康县| 墨江| 郯城县| 富源县| 图们市| 谷城县| 开封县| 丹东市| 德兴市| 岳西县| 英德市| 会昌县| 凌海市| 行唐县| 宁德市| 甘德县| 芜湖县| 乌兰县| 防城港市| 宣汉县| 江口县| 湘潭市| 鸡西市| 乌兰县| 武平县| 尚志市| 兴业县| 万山特区|