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

資訊專欄INFORMATION COLUMN

ES6成員Set的用法

wangshijun / 494人閱讀

Set是一個(gè)可存儲(chǔ)基礎(chǔ)類型及引用類型的容器,且容器中數(shù)據(jù)唯一。
(唯一:除NaN==NaN外,其余使用===判斷)

常用屬性與方法:

Set.prototype.size         -- 返回Set實(shí)例的個(gè)數(shù)

Set.prototype.add()        --添加元素
Set.prototype.delete()    --刪除元素
Set.prototype.has()        --判斷是否存在某元素
Set.prototype.clear()    --清空容器

Set.prototype.forEach()    --遍歷容器
Set.prototype.keys()    --返回容器鍵名遍歷器
Set.prototype.values()    --返回容器鍵值遍歷器器
Set.prototype.entries()    --返回容器鍵值對(duì)的遍歷器

基本用法:

//創(chuàng)建容器
let s = new Set();

//添加基本類型元素 --元素compare不存在隱式轉(zhuǎn)換 使用===,切記
s.add(1);
s.add("1");

//添加特殊類型元素  --特例 NaN與NaN 比較結(jié)果返回true
s.add(NaN);
s.add(NaN);

//添加引用類型元素 -- 直接添加引用地址不同,所以屬于兩個(gè)元素
s.add({a:1});
s.add({a:1});

//添加對(duì)象的形式,則只會(huì)添加一個(gè)元素進(jìn)去
let obj = {a:2};
s.add(obj);
s.add(obj);

console.log([...s]); //添加順序與數(shù)組push一樣
/*?[1, "1", {…}, {…}, NaN, {…}]
    0: 1
    1: "1"
    2: {a: 1}
    3: {a: 1}
    4: NaN
    5: {a: 2}
    length: 6
*/

//判斷元素是否存在容器中 存在返回true,不存在返回false
s.has(obj)
//true

s.has({a:1})
//false

s.has("1")
//true

//刪除元素 -- 刪除成功返回true,失敗返回false
s.delete({a:1}); 
//false  

s.delete(obj)
//true

console.log([...s]);
/* [1, "1", {…}, {…}, NaN]
    0:1
    1:"1"
    2:{a: 1}
    3:{a: 1}
    4:NaN
    length:5
*/

//size屬性存儲(chǔ)容器元素個(gè)數(shù)
console.log(s.size)
//5

//清空容器
s.clear(); 
s.size;
//0

遍歷:

keys()        -- 返回鍵名的遍歷器
values()    -- 返回鍵值的遍歷器
entries()    -- 返回鍵值對(duì)的遍歷器
注意: Set的遍歷順序即為添加順序,且Set沒有鍵名,故Set的鍵名與鍵值為同一值

let s = new Set(["a",11,{a:1},NaN]);
s.keys();
//SetIterator?{"a", 11, {…}, NaN}

[...s.keys()] //--轉(zhuǎn)化為數(shù)組形式
//["a", 11, {…}, NaN]

//遍歷容器的鍵名
for(let item of s.keys()){
    console.log(item);
}
/*
    a
    11
    {a: 1}
    NaN
*/

//----values()與entries()用法同上
----------------------------------------------------------
/*
    forEach()    -- 使用回調(diào)函數(shù)遍歷每個(gè)元素
    第一個(gè)參數(shù)為遍歷函數(shù) 函數(shù)參數(shù)依次為:鍵值、鍵名、集合本身,且參數(shù)可選
    第二個(gè)參數(shù)可傳入內(nèi)部this對(duì)象(可選參數(shù))
*/

//僅僅使用遍歷的用法 -- 常用
s.forEach((v,k,obj)=>{
  console.log(k+":"+v);
  console.log(obj);
});
/*
    a:a
    Set(4)?{"a", 11, {…}, NaN}
    11:11
    Set(4)?{"a", 11, {…}, NaN}
    [object Object]:[object Object]
    Set(4)?{"a", 11, {…}, NaN}
    NaN:NaN
    Set(4)?{"a", 11, {…}, NaN}
*/

//第二個(gè)參數(shù)用法
let op = {
  minus:function(x){
    return x*x;
  }
};
let ss = [1,2,3,4,5,6];
ss.forEach((v)=>console.log(op.minus(v)),op);
/*
    1
    4
    9
    16
    25
    36
*/

Set的使用場(chǎng)景:

//數(shù)組去重:
let arr = [1,23,4,4,56,5,56];
arr = [...new Set(arr)];
//[1, 23, 4, 56, 5]

//數(shù)組的并集、交集與差集
let a = [1,3,5,7,10];
let b = [1,2,4,6,8,10];

//并集
[...new Set([...a,...b])];
//[1, 3, 5, 7, 10, 2, 4, 6, 8]

//交集
let sss = new Set(b);
a.filter(i=>sss.has(i))
//[1, 10]

//差集
a.filter(i=>!sss.has(i));
//[3, 5, 7]

第一次寫文章,如有bug,請(qǐng)指正Thanks?(?ω?)?

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

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

相關(guān)文章

  • 細(xì)說es6Set和Map

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

    Ryan_Li 評(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è)布爾值,表示該值是否為的成員。清除所有成員,沒有返回值。 Set ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。 用法:new Set([iterable]) const set = new Set([1, 2, 3, 4, 4, 4]...

    VPointer 評(píng)論0 收藏0
  • ES6新增Set、Map數(shù)據(jù)結(jié)構(gòu)

    摘要:數(shù)據(jù)類型基本用法提供了一種類似于數(shù)組的新的數(shù)據(jù)結(jié)構(gòu)。實(shí)例屬性和方法本身是一個(gè)構(gòu)造函數(shù),用來生成數(shù)據(jù)結(jié)構(gòu)。返回一個(gè)布爾值,表示該值是否為的成員。任何具有接口且每個(gè)成員都是一個(gè)雙元素的數(shù)組的數(shù)據(jù)結(jié)構(gòu)都可以當(dāng)作構(gòu)造函數(shù)的參數(shù)。 Set數(shù)據(jù)類型 基本用法 ES6 提供了一種類似于數(shù)組的新的數(shù)據(jù)結(jié)構(gòu) Set。它的成員的值都是唯一的,沒有重復(fù)的值。 const s = new Set(); [2...

    lentoo 評(píng)論0 收藏0
  • es6:常用命令(2)

    摘要:本身是一個(gè)構(gòu)造函數(shù),用來生成數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)具有的屬性構(gòu)造函數(shù),默認(rèn)是函數(shù)。舉例鏈?zhǔn)絼h除某個(gè)鍵清空對(duì)象是一個(gè)構(gòu)造函數(shù),用來生成實(shí)例,是異步編程的一種解決方案。構(gòu)造函數(shù)接受一個(gè)函數(shù)作為參數(shù),該函數(shù)的兩個(gè)參數(shù)分別是函數(shù)和。 1、 Set 和 Map數(shù)據(jù)結(jié)構(gòu) Set 數(shù)據(jù)結(jié)構(gòu) Set 類似數(shù)組,但是成員是唯一的,不存在重復(fù)值。 Set本身是一個(gè)構(gòu)造函數(shù),用來生成Set數(shù)據(jù)結(jié)構(gòu)。 Set...

    wua_wua2012 評(píng)論0 收藏0
  • ES6Set數(shù)據(jù)結(jié)構(gòu)

    摘要:是提供的一種新的數(shù)據(jù)結(jié)構(gòu),它允許你存儲(chǔ)任何類型的唯一值,而且中的元素是唯一的。我們用操作符來生成一個(gè)對(duì)象基本用法元素是唯一的可以用來數(shù)組去重屬性和方法結(jié)構(gòu)的實(shí)例有以下屬性構(gòu)造函數(shù),默認(rèn)就是函數(shù)。返回實(shí)例的成員總數(shù)。 Set 是ES6提供的一種新的數(shù)據(jù)結(jié)構(gòu),它允許你存儲(chǔ)任何類型的唯一值,而且Set中的元素是唯一的。 我們用new操作符來生成一個(gè)Set對(duì)象 基本用法 let arr = ...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<