成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6中 Map 數(shù)據(jù)結(jié)構(gòu)

hlcfan / 2616人閱讀

摘要:新增了數(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

相關(guān)文章

  • 深入理解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
  • 深入理解: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引入的數(shù)據(jù)結(jié)構(gòu) - ES6 - ECMAScript特性 - Javascript核心

    摘要:引入的數(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 源代...

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

    摘要:我對(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了。。。。。 以下是原題...

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

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

0條評(píng)論

hlcfan

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<