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

資訊專欄INFORMATION COLUMN

es6基礎(chǔ)0x012:Map

DesGemini / 833人閱讀

摘要:概述也是一個(gè)新的數(shù)據(jù)結(jié)構(gòu),在中其實(shí)也經(jīng)常用到,比如下面的栗子,我們經(jīng)常這么使用一個(gè)對(duì)象,與其說(shuō)他是對(duì)象,其實(shí)他更像一個(gè),但是比起真正的,這個(gè)還是有點(diǎn)弱了,初始化初始化一個(gè)有一個(gè)可選的參數(shù),該參數(shù)必須是一個(gè)可迭代對(duì)象,可迭代對(duì)象包括和用戶定

0x000 概述

Map也是一個(gè)新的數(shù)據(jù)結(jié)構(gòu),在js中其實(shí)也經(jīng)常用到,比如下面的栗子,我們經(jīng)常這么使用一個(gè)對(duì)象,與其說(shuō)他是對(duì)象,其實(shí)他更像一個(gè)Map,但是比起真正的Map,這個(gè)還是有點(diǎn)弱了,

let color={
    "red":"#FF0000",
    "green":"#00FF00",
    "blue":"#0000FFF"
}
color["red"]
0x001 初始化
new Map([iterable])

初始化一個(gè)Map有一個(gè)可選的參數(shù),該參數(shù)必須是一個(gè)可迭代對(duì)象,可迭代對(duì)象包括StringArray、Array-Like obejct(Arguments、NodeList)Typped Array、SetMap用戶定義的可迭代對(duì)象。

數(shù)組

new Map([[1,2],[3,4]]) // Map(2)?{1 => 2, 3 => 4}

0x002 添加

和對(duì)象作為Map相比,Map的鍵可以是任意值,甚至可以是NaN

var myMap = new Map();
 
var keyObj = {},
    keyFunc = function () {},
    keyString = "a string";
 
// 添加鍵
myMap.set(keyString, "和鍵"a string"關(guān)聯(lián)的值");
myMap.set(keyObj, "和鍵keyObj關(guān)聯(lián)的值");
myMap.set(keyFunc, "和鍵keyFunc關(guān)聯(lián)的值");
0x003 獲取Map的大小
myMap.size    // 3
0x004 獲取
myMap.get(keyString)   // "和鍵"a string"關(guān)聯(lián)的值"
myMap.get(keyObj)     // "和鍵keyObj關(guān)聯(lián)的值"
myMap.get(keyFunc)      // "和鍵keyFunc關(guān)聯(lián)的值"
0x005 是否包含
myMap.has(keyString)  // true
myMap.has("1")  // false
0x006 刪除
myMap.delete(keyString)  // true
myMap.delete("")  // false
0x007 遍歷
myMap.forEach(m=>{console.log(m)})
// 和鍵"a string"關(guān)聯(lián)的值
//  和鍵keyObj關(guān)聯(lián)的值
//  和鍵keyFunc關(guān)聯(lián)的值
0x008 獲取迭代器
let entries=myMap.entries()
entries.next().value // 和鍵"a string"關(guān)聯(lián)的值
entries.next().value//  和鍵keyObj關(guān)聯(lián)的值
entries.next().value//   和鍵keyFunc關(guān)聯(lián)的值
0x009 獲取 key 迭代器
let keys=myMap.keys()
keys.next().value //  "a string"
keys.next().value//  function () {}
keys.next().value//   {}
0x010 獲取 value 迭代器
let values=myMap.values()
values.next().value // 和鍵"a string"關(guān)聯(lián)的值
values.next().value//  和鍵keyObj關(guān)聯(lián)的值
values.next().value//   和鍵keyFunc關(guān)聯(lián)的值
0x011 清除
mySet.clear()

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

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

相關(guān)文章

  • es6基礎(chǔ)0x021:反射

    摘要:概述反射說(shuō)起來(lái)和上一章節(jié)的代理基本一樣,只是使用的方式不同,設(shè)計(jì)理念也不同。 0x000 概述 反射說(shuō)起來(lái)和上一章節(jié)的代理基本一樣,只是使用的方式不同,設(shè)計(jì)理念也不同。 反射提供了一系列的靜態(tài)函數(shù),可以使用Reflect.function_name(...prams)調(diào)用,這一系列的方法和代理的處理器對(duì)象方法一致 0x001 apply 語(yǔ)法 Reflect.apply(targ...

    booster 評(píng)論0 收藏0
  • es6基礎(chǔ)0x020:代理

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

    hatlonely 評(píng)論0 收藏0
  • React入門0x012: 組件通信

    摘要:可以看到,父級(jí)更新了,子組件也同步更新了,也就完成了父組件向子組件發(fā)起通信的目的。當(dāng)然我們也可以通過(guò)適當(dāng)?shù)慕M件設(shè)計(jì)來(lái)避免過(guò)深的組件嵌套通信。所以這就解決了遠(yuǎn)程組件通信深度組件嵌套的問(wèn)題。組件間通信可以選擇像這樣的庫(kù)來(lái)處理。 0x000 概述 這一章講組件間通信,組件通信分為很多種: 父組件向子組件發(fā)起通信 子組件向父組件發(fā)起通信 兄弟組件間通訊 遠(yuǎn)程組件通信 在組件通信中,有一種錯(cuò)...

    Tonny 評(píng)論0 收藏0
  • ES6基礎(chǔ)知識(shí)01(let,const,解構(gòu)賦值)

    摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。解構(gòu)賦值允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)。對(duì)象的解構(gòu)賦值對(duì)象的屬性沒(méi)有次序,變量必須與屬性同名。 ES6 新增特性整理講解 新增命令 1.let命令 ES6新增了let命令,用來(lái)聲明變量。它的用法類似于var,但是也存在新的特性。 - **let所聲明的變量,只在le...

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

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

0條評(píng)論

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