成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

hiyayiji / 2898人閱讀

摘要:本身是一個(gè)構(gòu)造函數(shù),用來(lái)生成數(shù)據(jù)結(jié)構(gòu)可以接受一個(gè)數(shù)組或者類(lèi)數(shù)組對(duì)象作為參數(shù),用來(lái)初始化可用于數(shù)組去重方法可以將結(jié)構(gòu)轉(zhuǎn)換為數(shù)組向加入值時(shí),不會(huì)發(fā)生類(lèi)型轉(zhuǎn)換類(lèi)似于精確相等,但是要注意在里是等于自身的。

ES6:Set

大神地址:來(lái)自阮一峰大神的ES6入門(mén)書(shū)籍

了解Set

ES6提供了數(shù)據(jù)結(jié)構(gòu)Set。類(lèi)似于數(shù)組,但是沒(méi)有重復(fù)值。

Set本身是一個(gè)構(gòu)造函數(shù),用來(lái)生成Set數(shù)據(jù)結(jié)構(gòu)

const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for(let i of s ) {
    console.log(i); //2 3 5 4
}

Set可以接受一個(gè)數(shù)組(或者類(lèi)數(shù)組對(duì)象)作為參數(shù),用來(lái)初始化

var set = new Set([1, 2, 3, 4, 4]);
[...set]; // [1, 2, 3, 4]

可用于數(shù)組去重[...new Set(array)]

Array.from()方法可以將Set結(jié)構(gòu)轉(zhuǎn)換為數(shù)組Array.from(new Set(array))

向Set加入值時(shí),不會(huì)發(fā)生類(lèi)型轉(zhuǎn)換(類(lèi)似于精確相等===),但是要注意在Set里NaN是等于自身的。另外兩個(gè)對(duì)象總是不相等的。

let set = new Set();
let a = NaN;
let b = NaN;
set.add(a);
set.add(b);
set; //{NaN} 只能加入一個(gè),說(shuō)明Set內(nèi)部?jī)蓚€(gè)NaN是相等的
Set實(shí)例的屬性和方法

屬性:

Set.prototype.constructor:構(gòu)造函數(shù),默認(rèn)就是Set函數(shù)

Set.prototype.size:返回實(shí)例的成員總數(shù)

操作方法(方法的具體實(shí)現(xiàn)見(jiàn):我對(duì)JS集合的簡(jiǎn)單學(xué)習(xí)):

add(value):添加一個(gè)值,返回Set結(jié)構(gòu)本身

delete(value):刪除某個(gè)值,返回布爾值

has(value):返回布爾值,表示是否是成員

clear():清除所有成員,無(wú)返回值

s.add(1).add(2).add(2); //鏈?zhǔn)綄?xiě)法

s.size(); //2

s.has(3); //false

s.delete(2);
s.has(2); //false 

遍歷方法

keys():返回鍵名的遍歷器(什么是遍歷器?Iterator)

values():返回鍵值的遍歷器

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

forEach():使用回調(diào)函數(shù)遍歷每個(gè)成員

這里要注意Set的鍵名和鍵值是同一個(gè)值,所以key()和values()行為是一致的。

let set = new Set(["red", "green", "no"]);

for(let item of set.keys()) {
    console.log(item); //red green no
}

for(let item of set.values()) {
    console.log(item); //red green no
}

for(let item of set.entries()) {
    console.log(item); //["red": "red"] ["green": "green"] ["no": "no"]
}

//對(duì)每個(gè)成員執(zhí)行某種操作,參數(shù)依次為鍵值、鍵名、集合本身
new Set([1, 2, 3]).forEach((value, key) => console.log(value * 2)); //2 4 6
操作集合
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);

//并集
let union = new Set([...a, ...b]); //{1, 2, 3, 4}

//交集
let intersect = new Set([...a].filter(x => b.has(x))); //{2, 3}

//差集
let difference = new Set([...a].filter(x => !b.has(x))); //{1}

號(hào)外:擴(kuò)展運(yùn)算符(...)內(nèi)部使用for...of循環(huán),所以應(yīng)該知道for of是干嘛的吧

數(shù)組的map()filter()可用于Set

let set = new Set([1, 2, 3]);
set = new Set([...set].map(x => x * 2)); //set: {2, 4, 6}

let set = new Set([1, 2, 3, 4, 5]);
set = new Set([...set].filter(x => (x % 2) == 0)); //set {2, 4}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/82154.html

相關(guān)文章

  • ES6引入數(shù)據(jù)結(jié)構(gòu) - ES6 - ECMAScript特性 - Javascript核心

    摘要:引入的數(shù)據(jù)結(jié)構(gòu)新加入的數(shù)據(jù)類(lèi)型有這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫(xiě)這篇文章的時(shí)候。是或其他可枚舉的對(duì)象,其每個(gè)元素是的元數(shù)組。開(kāi)頭的和不對(duì)持有引用,不影響。因此,他們沒(méi)有辦法對(duì)自身的進(jìn)行直接的枚舉。目前新版的和支持。 原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.html 源代...

    fobnn 評(píng)論0 收藏0
  • 深入理解:ES6Set和Map數(shù)據(jù)結(jié)構(gòu),Map與其它數(shù)據(jù)結(jié)構(gòu)互相轉(zhuǎn)換

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

    Cristalven 評(píng)論0 收藏0
  • 深入理解ES6筆記(七)Set集合和Map集合

    摘要:創(chuàng)建并添加項(xiàng)目可以使用數(shù)組來(lái)初始化一個(gè),并且構(gòu)造器會(huì)確保不重復(fù)地使用這些值使用方法來(lái)測(cè)試某個(gè)值是否存在于中移除值使用方法來(lái)移除單個(gè)值,或調(diào)用方法來(lái)將所有值從中移除。屬性的初始化將數(shù)組傳遞給構(gòu)造器,以便使用數(shù)據(jù)來(lái)初始化一個(gè)。 主要知識(shí)點(diǎn):Set的基本操作,Weak Set,Map的基本操作,Weak MapshowImg(https://segmentfault.com/img/bVbf...

    loostudy 評(píng)論0 收藏0
  • 帶你入門(mén) JavaScript ES6 (五) 集合

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

    BetaRabbit 評(píng)論0 收藏0
  • ES6數(shù)據(jù)結(jié)構(gòu)set和map

    摘要:提供了新的數(shù)據(jù)結(jié)構(gòu)。用法結(jié)構(gòu)有以下屬性構(gòu)造函數(shù),默認(rèn)就是函數(shù)。結(jié)構(gòu)有以下方法添加某個(gè)值,返回結(jié)構(gòu)本身。返回一個(gè)布爾值,表示該值是否為的成員。清除所有成員,沒(méi)有返回值。 Set ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set。它類(lèi)似于數(shù)組,但是成員的值都是唯一的,沒(méi)有重復(fù)的值。 用法:new Set([iterable]) const set = new Set([1, 2, 3, 4, 4, 4]...

    VPointer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<