摘要:新增了數(shù)據(jù)結構,對象保存鍵值對,任何值原始值或對象都可以作為一個鍵或一個值?;居梅▽嵗膶傩院筒僮鞣椒ǚ椒ㄔO置鍵名對應的鍵值為,然后返回整個結構。獲取的值方法返回一個布爾值,表示某個鍵是否在當前對象之中。如果刪除失敗,返回。
ES6新增了 Map數(shù)據(jù)結構,Map對象保存鍵值對,任何值(原始值或對象)都可以作為一個鍵或一個值。
基本用法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實例的屬性和操作方法
set(key,value):
set方法設置鍵名key對應的鍵值為value,然后返回整個 Map 結構。
let map = new Map(); map.set("dsssffffdffffdddsdsdsdssfw",8); map.set({a:1},"ddsdsds");
get(key):
獲取key的值
map.get("dsssffffdffffdddsdsdsdssfw")//8
has(key)
has方法返回一個布爾值,表示某個鍵是否在當前 Map 對象之中。
map.has("dsssffffdffffdddsdsdsdssfw"); //true
delete(key)
delete方法刪除某個鍵,返回true。如果刪除失敗,返回false。
map.delete("dsssffffdffffdddsdsdsdssfw"); map.has("dsssffffdffffdddsdsdsdssfw")//false
clear()
清空Map對象
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ù)結構的互相轉換
Map轉為數(shù)組
const myMap = new Map() .set(true, 7) .set({foo: 3}, ["abc"]); [...myMap] // [ [ true, 7 ], [ { foo: 3 }, [ "abc" ] ] ]
數(shù)組 轉為 Map
new Map([ [true, 7], [{foo: 3}, ["abc"]] ])
Map 轉為對象
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)
對象轉為 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
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/98069.html
摘要:創(chuàng)建并添加項目可以使用數(shù)組來初始化一個,并且構造器會確保不重復地使用這些值使用方法來測試某個值是否存在于中移除值使用方法來移除單個值,或調(diào)用方法來將所有值從中移除。屬性的初始化將數(shù)組傳遞給構造器,以便使用數(shù)據(jù)來初始化一個。 主要知識點:Set的基本操作,Weak Set,Map的基本操作,Weak MapshowImg(https://segmentfault.com/img/bVbf...
摘要:但是有了尾調(diào)用優(yōu)化之后,遞歸函數(shù)的性能有了提升。常被用來檢查對象中是否存在某個鍵名,集合常被用來獲取已存的信息。循環(huán)解構對象本身不支持迭代,但是我們可以自己添加一個生成器,返回一個,的迭代器,然后使用循環(huán)解構和。 一、let和const 在JavaScript中咱們以前主要用關鍵var來定義變量,ES6之后,新增了定義變量的兩個關鍵字,分別是let和const。對于變量來說,在ES5中...
摘要:學習筆記工作中常用到的語法只是簡單提及和,今天有空于是寫了這篇文章深入理解中的和數(shù)據(jù)結構,與其它數(shù)據(jù)結構的互相轉換。的提供了新的數(shù)據(jù)結構。本身是一個構造函數(shù),用來生成數(shù)據(jù)結構。 文中的內(nèi)容主要是來自于阮一峰的《ES6標準入門》(第三版)?!秾W習ES6筆記──工作中常用到的ES6語法》只是簡單提及Set和Map,今天有空于是寫了這篇文章──《深入理解:ES6中的Set和Map數(shù)據(jù)結構,M...
摘要:引入的數(shù)據(jù)結構新加入的數(shù)據(jù)類型有這些數(shù)據(jù)結構的支持并不廣泛,在寫這篇文章的時候。是或其他可枚舉的對象,其每個元素是的元數(shù)組。開頭的和不對持有引用,不影響。因此,他們沒有辦法對自身的進行直接的枚舉。目前新版的和支持。 原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.html 源代...
摘要:我對數(shù)據(jù)結構的學習最近在上做了一道題目,嗯,我這個渣渣沒有做出來,然后看了別人的解決方案,是時候學習一下的了。。。。。讀取對應的鍵值,如果找不到返回鍵是函數(shù)返回一個布爾值,表示某個鍵是否在數(shù)據(jù)結構中。 我對ES6數(shù)據(jù)結構Map的學習 最近在CodeWars上做了一道題目,嗯,我這個渣渣沒有做出來,然后看了別人的解決方案,Map??? 是時候學習一下ES6的Map了。。。。。 以下是原題...
閱讀 3138·2023-04-26 02:29
閱讀 721·2019-08-30 15:54
閱讀 1828·2019-08-29 13:13
閱讀 739·2019-08-28 17:51
閱讀 2868·2019-08-26 13:58
閱讀 1660·2019-08-26 13:27
閱讀 2953·2019-08-26 11:39
閱讀 3590·2019-08-26 10:46