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