摘要:新增了數(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 obj = { name: "Leon", sex: "male" }; map.set(obj,"myObject"); map.get(obj); // "myObject" map.has(obj) //true map.delete(obj) //true map.has(obj) // false實(shí)例的屬性和操作方法
set(key,value):
set方法設(shè)置鍵名key對(duì)應(yīng)的鍵值為value,然后返回整個(gè) Map 結(jié)構(gòu)。
let map = new Map(); map.set("dsssffffdffffdddsdsdsdssfw",8); map.set({a:1},"ddsdsds");
get(key):
獲取key的值
map.get("dsssffffdffffdddsdsdsdssfw")//8
has(key)
has方法返回一個(gè)布爾值,表示某個(gè)鍵是否在當(dāng)前 Map 對(duì)象之中。
map.has("dsssffffdffffdddsdsdsdssfw"); //true
delete(key)
delete方法刪除某個(gè)鍵,返回true。如果刪除失敗,返回false。
map.delete("dsssffffdffffdddsdsdsdssfw"); map.has("dsssffffdffffdddsdsdsdssfw")//false
clear()
清空Map對(duì)象
map.size // 2 map.clear() map.size // 0遍歷方法
方法 | 作用 |
---|---|
keys() | 返回鍵名的遍歷器 |
values() | 返回鍵值的遍歷器 |
entries() | 返回所有成員的遍歷器 |
forEach() | 遍歷 Map 的所有成員 |
const map = new Map([ ["F", "no"], ["T", "yes"], ]); for (let key of map.keys()) { console.log(key); } // "F" // "T" for (let value of map.values()) { console.log(value); } // "no" // "yes" for (let item of map.entries()) { console.log(item[0], item[1]); } // "F" "no" // "T" "yes" // 或者 for (let [key, value] of map.entries()) { console.log(key, value); } // "F" "no" // "T" "yes" // 等同于使用map.entries() for (let [key, value] of map) { console.log(key, value); } // "F" "no" // "T" "yes"與其他數(shù)據(jù)結(jié)構(gòu)的互相轉(zhuǎn)換
Map轉(zhuǎn)為數(shù)組
const myMap = new Map() .set(true, 7) .set({foo: 3}, ["abc"]); [...myMap] // [ [ true, 7 ], [ { foo: 3 }, [ "abc" ] ] ]
數(shù)組 轉(zhuǎn)為 Map
new Map([ [true, 7], [{foo: 3}, ["abc"]] ])
Map 轉(zhuǎn)為對(duì)象
function strMapToObj(strMap) { let obj = Object.create(null); for (let [k,v] of strMap) { obj[k] = v; } return obj; } const myMap = new Map() .set("yes", true) .set("no", false); strMapToObj(myMap)
對(duì)象轉(zhuǎn)為 Map
function objToStrMap(obj) { let strMap = new Map(); for (let k of Object.keys(obj)) { strMap.set(k, obj[k]); } return strMap; } objToStrMap({yes: true, no: false})
參考:
http://es6.ruanyifeng.com/#docs/set-map#Map
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98069.html
摘要:創(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...
摘要:但是有了尾調(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中...
摘要:學(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...
摘要:引入的數(shù)據(jù)結(jié)構(gòu)新加入的數(shù)據(jù)類型有這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫這篇文章的時(shí)候。是或其他可枚舉的對(duì)象,其每個(gè)元素是的元數(shù)組。開頭的和不對(duì)持有引用,不影響。因此,他們沒有辦法對(duì)自身的進(jìn)行直接的枚舉。目前新版的和支持。 原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.html 源代...
摘要:我對(duì)數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)最近在上做了一道題目,嗯,我這個(gè)渣渣沒有做出來(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è)渣渣沒有做出來(lái),然后看了別人的解決方案,Map??? 是時(shí)候?qū)W習(xí)一下ES6的Map了。。。。。 以下是原題...
閱讀 2985·2023-04-26 02:29
閱讀 592·2019-08-30 15:54
閱讀 1672·2019-08-29 13:13
閱讀 609·2019-08-28 17:51
閱讀 2731·2019-08-26 13:58
閱讀 1543·2019-08-26 13:27
閱讀 2829·2019-08-26 11:39
閱讀 3454·2019-08-26 10:46