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

資訊專欄INFORMATION COLUMN

es6基礎0x012:Map

DesGemini / 828人閱讀

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

0x000 概述

Map也是一個新的數據結構,在js中其實也經常用到,比如下面的栗子,我們經常這么使用一個對象,與其說他是對象,其實他更像一個Map,但是比起真正的Map,這個還是有點弱了,

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

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

數組

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

0x002 添加

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

var myMap = new Map();
 
var keyObj = {},
    keyFunc = function () {},
    keyString = "a string";
 
// 添加鍵
myMap.set(keyString, "和鍵"a string"關聯的值");
myMap.set(keyObj, "和鍵keyObj關聯的值");
myMap.set(keyFunc, "和鍵keyFunc關聯的值");
0x003 獲取Map的大小
myMap.size    // 3
0x004 獲取
myMap.get(keyString)   // "和鍵"a string"關聯的值"
myMap.get(keyObj)     // "和鍵keyObj關聯的值"
myMap.get(keyFunc)      // "和鍵keyFunc關聯的值"
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"關聯的值
//  和鍵keyObj關聯的值
//  和鍵keyFunc關聯的值
0x008 獲取迭代器
let entries=myMap.entries()
entries.next().value // 和鍵"a string"關聯的值
entries.next().value//  和鍵keyObj關聯的值
entries.next().value//   和鍵keyFunc關聯的值
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"關聯的值
values.next().value//  和鍵keyObj關聯的值
values.next().value//   和鍵keyFunc關聯的值
0x011 清除
mySet.clear()

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

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

相關文章

  • es6基礎0x021:反射

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

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

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

    hatlonely 評論0 收藏0
  • React入門0x012: 組件通信

    摘要:可以看到,父級更新了,子組件也同步更新了,也就完成了父組件向子組件發起通信的目的。當然我們也可以通過適當的組件設計來避免過深的組件嵌套通信。所以這就解決了遠程組件通信深度組件嵌套的問題。組件間通信可以選擇像這樣的庫來處理。 0x000 概述 這一章講組件間通信,組件通信分為很多種: 父組件向子組件發起通信 子組件向父組件發起通信 兄弟組件間通訊 遠程組件通信 在組件通信中,有一種錯...

    Tonny 評論0 收藏0
  • ES6基礎知識01(let,const,解構賦值)

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

    MSchumi 評論0 收藏0

發表評論

0條評論

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