国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

es6基礎0x011:Set

jsyzchen / 1206人閱讀

摘要:概述是一個新的數據結構,和其他語言的特性差不多,當然,作為中的,他還是有一些屬于的特點。

0x000 概述

Set是一個新的數據結構,和其他語言的特性差不多,當然,作為js中的Set,他還是有一些屬于js的特點。

0x001 初始化
new Set([iterable]);

初始化一個Set有一個可選的參數,這個參數必須是一個可迭代的對象可迭代對象包括String、Array、Array-Like obejct(Arguments、NodeList)、Typped Array、Set、Map用戶定義的可迭代對象

字符串

new Set("1234") // Set(4)?{"1", "2", "3", "4"}

數組

new Set([1,2,3,4]) // Set(4)?{1, 2, 3, 4}

arguments

function sum(){
  return new Set(arguments)
}
sum(1,2,3,4)  // Set(4)?{1, 2, 3, 4}

Set

new Set(new Set([1,2,3,4])) // Set(4)?{1, 2, 3, 4}

0x002 添加值

初始化一個Set之后,可以繼續往里面添加值

let set=new Set()
set.add(1)
set.add(1)
set.add(1)
console.log(set) // Set(1)?{1}

借用這個特性可以搞很多事,比如過濾重復值

new Set([1,1,2,3]) // Set(3){1,2,3}

但是注意,兩個相同的對象字面量是不同的對象,具有不同的引用,所以Set是無法將兩個不同引用的對象標記為同一個的,即使他們看過去是一樣的

let a={num:1}
let b={num:1}
console.log(a===b) //false
new Set(a, b)// Set(2){{num:1},{num:2}}
let c=a
console.log(c===a)//true
new Set(a,c)// Set(1){{num:1}}
0x003 判斷是否包含
let set=new Set([1,2,3])
set.has(1) // true
set.has(4) //false
0x004 獲取數量
let set=new Set([1,2,3])
set.size //3
0x005 刪除
let set=new Set([1,2,3])
set.delete(1)// true
set.delete(1)// false
0x006 清空
let set=new Set([1,2,3])
set.clear()
console.log(set) // Set(0){}
0x007 遍歷
let set=new Set([1,2,3])
set.forEach((s)=>{console.log(s)})
// 1
// 2
// 3
0x008 獲取迭代器
let set=new Set([1,2,3])
let entries=set.entries()
console.log(entries.next().value) // [1,1]
console.log(entries.next().value) // [2,2]
console.log(entries.next().value) // [3,3]
console.log(entries.next().value) // undefined

for(let item of set){
    console.log(item)
}
// 1
// 2
// 3
0x009 獲取鍵迭代器
let set=new Set([1,2,3])
let keys=set.keys()
console.log(keys.next().value) // 1
console.log(keys.next().value) // 2
console.log(keys.next().value) // 3
console.log(keys.next().value) // undefined

for(let {key} of set){
    console.log(key)
}
// 1
// 2
// 3
0x010 獲取值迭代器
let set=new Set([1,2,3])
let values=set.values()
console.log(values.next().value) // 1
console.log(values.next().value) // 2
console.log(values.next().value) // 3
console.log(values.next().value) // undefined

for(let {value} of set){
    console.log(value)
}
// 1
// 2
// 3

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99251.html

相關文章

  • es6基礎0x012:Map

    摘要:概述也是一個新的數據結構,在中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個,但是比起真正的,這個還是有點弱了,初始化初始化一個有一個可選的參數,該參數必須是一個可迭代對象,可迭代對象包括和用戶定 0x000 概述 Map也是一個新的數據結構,在js中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個Map...

    DesGemini 評論0 收藏0
  • es6基礎0x020:代理

    摘要:概述代理嘛,就是請代理人代替自己做某件事,但是和自己不一樣的是代理人可以有自己的行為,甚至可以做出和預期相違背的行為。 0x000 概述 代理嘛,就是請代理人代替自己做某件事,但是和自己不一樣的是代理人可以有自己的行為,甚至可以做出和預期相違背的行為。 0x001 栗子 聲明一個普通對象origin,他有一個屬性name let origin={ name: origin } ...

    hatlonely 評論0 收藏0
  • es6基礎0x021:反射

    摘要:概述反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 0x000 概述 反射說起來和上一章節的代理基本一樣,只是使用的方式不同,設計理念也不同。 反射提供了一系列的靜態函數,可以使用Reflect.function_name(...prams)調用,這一系列的方法和代理的處理器對象方法一致 0x001 apply 語法 Reflect.apply(targ...

    booster 評論0 收藏0
  • React入門0x011: 樣式

    摘要:當然這個對象的鍵值取值必須在的有效取值范圍內才行,否則,瀏覽器可解析不了。 0x000 概述 這一章講react中的樣式 0x001 樣式也可以是js 再聲明一遍,在js中,什么都是js,樣式也是,但是樣式分為兩種,內聯樣式和外聯樣式 內聯樣式: 內聯樣式可以寫在標簽的style屬性中 我們先嘗試傳統寫法 import React from react import React...

    Pikachu 評論0 收藏0

發表評論

0條評論

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