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

資訊專欄INFORMATION COLUMN

ES6 - Map

sugarmo / 1928人閱讀

摘要:和是新增的種集合類型,在前面已經(jīng)講過(guò)。對(duì)應(yīng)的不會(huì)對(duì)方法的結(jié)果產(chǎn)生影響。方法的第一個(gè)參數(shù)也就是一個(gè)接受,,本身這三個(gè)參數(shù)。會(huì)按照鍵值對(duì)的插入順序輪詢得到打印結(jié)果以上,就是的一些基本特性和使用場(chǎng)景,下一篇我們講。

Set和Map是ES6新增的2種集合類型,Set在前面已經(jīng)講過(guò)。這一篇我們主要來(lái)講一下Map。我們先來(lái)看一些Map的基本定義和描述:

1: Map是一種存儲(chǔ)著多個(gè)鍵值對(duì)的有序列表
2: Map的元素的key和value可以是任何數(shù)據(jù)類型
3: 鍵名的等值性通過(guò)Object.is()判斷,所以數(shù)字5和字符串"5"是兩個(gè)獨(dú)立的key

廢話不多說(shuō),我們來(lái)看看Map的基本用法:
一:創(chuàng)建和初始化一個(gè)Map
1:創(chuàng)建一個(gè)空Map

let map = new Map();

以上,我們創(chuàng)建了一個(gè)沒(méi)有元素的空Map。
2:用Array初始化Map

let map = new Map([["name", "mike"],["age", 25]]);
map.forEach(function (value, key, map) {
    console.log(`${key}: ${value}`)
})

得到打印結(jié)果:

name: mike
age: 25

用Array初始化Map,需要一個(gè)二維數(shù)組,二維數(shù)組里面的每一個(gè)元素(也就是一個(gè)一維數(shù)組)包含2個(gè)元素,第一個(gè)元素是鍵值對(duì)的key,第二個(gè)元素是鍵值對(duì)的value。

二:Map的增
在上面的內(nèi)容里,我們說(shuō)到通過(guò)調(diào)用new Map()創(chuàng)建了一個(gè)空Map。那如果我們想要往這個(gè)map里存儲(chǔ)數(shù)據(jù),可以調(diào)用set(key, value)來(lái)完成:

let map = new Map();
map.set("name", "mike");
map.set("age", 25);
map.forEach(function (value, key, map) {
    console.log(`${key}: ${value}`)
})

以上的打印得到:

name: mike
age: 25

set()方法,第一個(gè)參數(shù)為key,第二個(gè)參數(shù)為value。

三:Map的刪
跟Set一樣,我們也可以通過(guò)調(diào)用clear()方法來(lái)刪除整個(gè)map里面的元素:

let map = new Map([["name", "mike"],["age", 25]]);
map.clear();
console.log(map.size); // 0

四:Map的查
1: 我們可以通過(guò)has()方法來(lái)查看在map里是否存在某個(gè)鍵名

let map = new Map([["name", ""],["age", 0]]);
console.log(map.has("name")); //true
console.log(map.has("age"));//true
console.log(map.has("country"));//false

需要特別注意的是,has()方法只檢查某個(gè)key是否存在,存在就返回true,不存在就返回false。key對(duì)應(yīng)的value不會(huì)對(duì)has()方法的結(jié)果產(chǎn)生影響。

2: 我們可以通過(guò)get()方法來(lái)獲取某個(gè)key對(duì)應(yīng)的value

let map = new Map([["name", "mike"],["age", 25]]);
console.log(map.get("name")); // mike
console.log(map.get("age")); // 25
console.log(map.get("country")); // undefined

如果獲取某個(gè)不存在的key,此方法返回undefined

五:Map的減
與Set一樣,我們可以調(diào)用delete(key)刪除一個(gè)鍵值對(duì):

let map = new Map([["name", "mike"], ["age", 25]]);
map.delete("name");
console.log(map.size); // 1

六:Map的forEach()方法
Map當(dāng)然也有forEach()方法,我們?cè)谇懊娴睦悠鋵?shí)已經(jīng)使用過(guò)了。forEach()方法的第一個(gè)參數(shù)(也就是一個(gè)function)接受value,key,map本身這三個(gè)參數(shù)。forEach()會(huì)按照鍵值對(duì)的插入順序輪詢:

let map = new Map();
map.set(2, "lily");
map.set("name", "dan");
map.set(1, "mike");
map.forEach(function (value, key, mapSelf) {
    console.log(`${key}: ${value}`);
})

得到打印結(jié)果:

2: lily
name: dan
1: mike

以上,就是Map的一些基本特性和使用場(chǎng)景,下一篇我們講WeakMap。

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

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

相關(guān)文章

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

    摘要:引入的數(shù)據(jù)結(jié)構(gòu)新加入的數(shù)據(jù)類型有這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫這篇文章的時(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
  • 深入理解:ES6中的Set和Map數(shù)據(jù)結(jié)構(gòu),Map與其它數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換

    摘要:學(xué)習(xí)筆記工作中常用到的語(yǔ)法只是簡(jiǎn)單提及和,今天有空于是寫了這篇文章深入理解中的和數(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)入門》(第三版)?!秾W(xué)習(xí)ES6筆記──工作中常用到的ES6語(yǔ)法》只是簡(jiǎn)單提及Set和Map,今天有空于是寫了這篇文章──《深入理解: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
  • 學(xué)習(xí)ES6筆記──工作中常用到的ES6語(yǔ)法

    摘要:但是有了尾調(diào)用優(yōu)化之后,遞歸函數(shù)的性能有了提升。常被用來(lái)檢查對(duì)象中是否存在某個(gè)鍵名,集合常被用來(lái)獲取已存的信息。循環(huán)解構(gòu)對(duì)象本身不支持迭代,但是我們可以自己添加一個(gè)生成器,返回一個(gè),的迭代器,然后使用循環(huán)解構(gòu)和。 一、let和const 在JavaScript中咱們以前主要用關(guān)鍵var來(lái)定義變量,ES6之后,新增了定義變量的兩個(gè)關(guān)鍵字,分別是let和const。對(duì)于變量來(lái)說(shuō),在ES5中...

    curried 評(píng)論0 收藏0
  • 由codewars上的一道題目學(xué)習(xí)ES6Map

    摘要:我對(duì)數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)最近在上做了一道題目,嗯,我這個(gè)渣渣沒(méi)有做出來(lái),然后看了別人的解決方案,是時(shí)候?qū)W習(xí)一下的了。。。。。讀取對(duì)應(yīng)的鍵值,如果找不到返回鍵是函數(shù)返回一個(gè)布爾值,表示某個(gè)鍵是否在數(shù)據(jù)結(jié)構(gòu)中。 我對(duì)ES6數(shù)據(jù)結(jié)構(gòu)Map的學(xué)習(xí) 最近在CodeWars上做了一道題目,嗯,我這個(gè)渣渣沒(méi)有做出來(lái),然后看了別人的解決方案,Map??? 是時(shí)候?qū)W習(xí)一下ES6的Map了。。。。。 以下是原題...

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

    摘要:新增了數(shù)據(jù)結(jié)構(gòu),對(duì)象保存鍵值對(duì),任何值原始值或?qū)ο蠖伎梢宰鳛橐粋€(gè)鍵或一個(gè)值。基本用法實(shí)例的屬性和操作方法方法設(shè)置鍵名對(duì)應(yīng)的鍵值為,然后返回整個(gè)結(jié)構(gòu)。獲取的值方法返回一個(gè)布爾值,表示某個(gè)鍵是否在當(dāng)前對(duì)象之中。如果刪除失敗,返回。 ES6新增了 Map數(shù)據(jù)結(jié)構(gòu),Map對(duì)象保存鍵值對(duì),任何值(原始值或?qū)ο螅┒伎梢宰鳛橐粋€(gè)鍵或一個(gè)值。 基本用法 let map = new Map(); let...

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

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

0條評(píng)論

閱讀需要支付1元查看
<