日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

es6 map与set

發(fā)布時間:2024/9/27 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 es6 map与set 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

set

定義: Set 對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用,Set對象是值的集合,你可以按照插入的順序迭代它的元素。Set中的元素只會出現(xiàn)一次,即 Set 中的元素是唯一的

Set本身是一個構(gòu)造函數(shù),用來生成 Set 數(shù)據(jù)結(jié)構(gòu)

語法

let set = new Set([1, 1, 2, 2])console.log(...set)

屬性:size? ? ?返回長度

console.log(new Set([1,2,1,2]).size) // 2

操作方法:

  • add(value): 向集合中添加一個新的項
  • ?delete(value): 從集合中刪除一個值
  • ?has(value): 如果值在集合中存在,返回ture, 否則返回false
  • clear(): 移除集合中的所有項?
  • ?

    let set = new Set() set.add(1) set.add(2) set.add(2) set.add(3) console.log(set) // {1,2,3} set.has(2) // true set.delete(2) set.has(2) // false set.clear()

    ?

    遍歷方法

  • ??keys(): 返回鍵名的遍歷器
  • ?values(): 返回鍵值的遍歷器
  • ?entries(): 返回鍵值對的遍歷器
  • ?forEach(): 使用回調(diào)函數(shù)遍歷每個成員?
  • ?

    let set = new Set([1,2,3,4]) // 由于set只有鍵值,沒有鍵名,所以keys() values()行為完全一致 console.log(Array.from(set.keys())) // [1,2,3,4] console.log(Array.from(set.values())) // [1,2,3,4] console.log(Array.from(set.entries())) // [[1,1],[2,2],[3,3],[4,4]] set.forEach((item) => { console.log(item)}) // 1,2,3,4

    ?

    應用場景

    ?

    // 數(shù)組去重 let arr = [1, 1, 2, 3]; let unique = [... new Set(arr)]; let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 并集 let union = [...new Set([...a, ...b])]; // [1,2,3,4] // 交集 let intersect = [...new Set([...a].filter(x => b.has(x)))]; [2,3] // 差集 let difference = Array.from(new Set([...a].filter(x => !b.has(x)))); [1]

    ?

    ?

    map

    Map 對象保存鍵值對,并且能夠記住鍵的原始插入順序。任何值(對象或者原始值) 都可以作為一個鍵或一個值。一個Map對象在迭代時會根據(jù)對象中元素的插入順序來進行 — 一個? for...of 循環(huán)在每次迭代后會返回一個形式為[key,value]的數(shù)組

    ?

    Map的使用場景

    Map和Object很類似,但Map有一個比較特殊的應用場景。如果你在開發(fā)時不確定鍵值對里面的鍵的名稱,那么你需要用Map。舉例來說,你需要動態(tài)地從MongoDB里獲取鍵值并顯示給用戶,但也許你并不關心這些鍵值的鍵名到底是什么,那么在這種情況下,你可以用Map,例如這樣:

    ?

    var?myMap?=?new?Map();var?keyObj?=?{},keyFunc?=?function?()?{?return?'hey'},keyString?=?"a?string";myMap.set(keyString,?"value?associated?with?'a?string'"); myMap.set(keyObj,?"value?associated?with?keyObj"); myMap.set(keyFunc,?"value?associated?with?keyFunc");console.log(myMap.get(keyFunc));

    語法

    let map = new Map() map.set('name', 'vuejs.cn'); console.log(map.get('name'))

    屬性??size: 返回 Map 結(jié)構(gòu)的元素總數(shù)?

    let map = new Map() map.set('name', 'vuejs.cn'); console.log(map.size) // 1 console.log(new Map([['name','vue3js.cn'], ['age','18']]).size) // 2

    ?

    操作方法

    • set(key, value): 向 Map 中加入或更新鍵值對
    • ?get(key): 讀取 key 對用的值,如果沒有,返回 undefined
    • ?has(key): 某個鍵是否在 Map 對象中,在返回 true 否則返回 false
    • ?delete(key): 刪除某個鍵,返回 true, 如果刪除失敗返回 false
    • ?clear(): 刪除所有元素?

    ?

    let map = new Map() map.set('name','vue3js.cn') map.set('age','18') console.log(map) // Map {"name" => "vuejs.cn", "age" => "18"} map.get('name') // vue3js.cn map.has('name') // true map.delete('name') map.has(name) // false map.clear() // Map {}

    ?

    遍歷方法

    • ?keys():返回鍵名的遍歷器
    • ?values():返回鍵值的遍歷器
    • ?entries():返回所有成員的遍歷器
    • ?forEach():遍歷 Map 的所有成員?

    ?

    let map = new Map() map.set('name','vue3js.cn') map.set('age','18') console.log([...map.keys()]) // ["name", "age"] console.log([...map.values()]) // ["vue3js.cn", "18"] console.log([...map.entries()]) // [['name','vue3js.cn'], ['age','18']] // name vuejs.cn // age 18 map.forEach((value, key) => { console.log(key, value)})

    ?

    類型的轉(zhuǎn)換

    • ?Map 轉(zhuǎn)為 Array

    ?

    // 解構(gòu) const map = new Map([[1, 1], [2, 2], [3, 3]]) console.log([...map]) // [[1, 1], [2, 2], [3, 3]] // Array.from() const map = new Map([[1, 1], [2, 2], [3, 3]]) console.log(Array.from(map)) // [[1, 1], [2, 2], [3, 3]]

    ?

    • ?Array 轉(zhuǎn)為 Map?

    ?

    const map = new Map([[1, 1], [2, 2], [3, 3]]) console.log(map) // Map {1 => 1, 2 => 2, 3 => 3}
    • Map 轉(zhuǎn)為 Object?

    ?

    // 非字符串鍵名會被轉(zhuǎn)換為字符串 function mapToObj(map) { let obj = Object.create(null) for (let [key, value] of map) { obj[key] = value } return obj } const map = new Map().set('name', 'vue3js.cn').set('age', '18') mapToObj(map) // {name: "vue3js.cn", age: "18"}

    ?

    • Object 轉(zhuǎn)為 Map
    let obj = {"a":1, "b":2}; let map = new Map(Object.entries(obj))

    ?

    總結(jié)

    以上是生活随笔為你收集整理的es6 map与set的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美网 | 日本黄网站 | 男生把女生困困的视频 | 性大片潘金莲裸体 | 天堂网av2018 | 骚鸭av| 自拍 偷拍 欧美 | 一区二区三区久久久久 | 夫妻精品 | 丁香六月婷婷激情 | 日本一级淫片1000部 | 久久1024| 日韩电影中文字幕 | 久久国产精品免费看 | 国产va| 九九免费在线视频 | 日韩久久网 | 国产精品无码一区二区三区免费 | 91你懂的 | 97人妻人人揉人人躁人人 | 翔田千里在线播放 | 在线观看麻豆av | 日韩一区二区三区在线看 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 成人午夜淫片100集 伊人久久国产 | 特黄三级又爽又粗又大 | 欧美风情第一页 | 精品人妻一区二区三区免费 | 99久久精品免费 | av在线高清观看 | 国产96在线| 国产黄色免费大片 | 亚洲成人免费在线视频 | 中韩毛片 | 青春草在线视频免费观看 | 天天爽天天爽天天爽 | 少妇一级淫片免费播放 | 性人久久久久 | 女人被狂躁60分钟视频 | 激情欧美一区二区 | 久久综合在线 | 欧美午夜精品一区二区三区电影 | 亚洲色图10p | 亚洲色欲色欲www在线观看 | 国产毛片儿 | 国产精品黄色 | 欧美热热| 女女互磨互喷水高潮les呻吟 | 99久久久久无码国产精品 | 以女性视角写的高h爽文 | 99精品黄色| av大片在线免费观看 | 亚洲成人看片 | 69xxx免费视频 | 黄色av电影网站 | 伊人春色网站 | 成人不卡在线 | 樱桃av | 国产一区二区三区四区 | 午夜视频福利网站 | 亚洲国产无码精品 | 日韩久久久久久久久久 | 国产福利资源在线 | 在线免费av片 | 永久免费未满 | 亚洲精品乱码久久久久久久久久久久 | 97xxxxx| 亚洲精品日产精品乱码不卡 | 无码h黄肉3d动漫在线观看 | 捅肌肌 | 色88久久久久高潮综合影院 | 丁香激情婷婷 | 中文字幕 自拍 | 天天干天天色 | 亚洲偷偷 | 农民人伦一区二区三区 | 欧美性jizz18性欧美 | 性色av浪潮av | www日韩在线观看 | 91视频在线 | 免费观看国产精品视频 | 日本在线视频中文字幕 | 婷婷社区五月天 | 一级的大片| 成人免费毛片高清视频 | 伊人888 | 国产午夜性春猛交ⅹxxx | 四虎毛片 | 午夜影院0606 | 亚洲久久天堂 | 一区二区三区波多野结衣 | 精品久久久久中文慕人妻 | 99中文字幕在线观看 | 国产主播精品 | 艳妇臀荡乳欲伦交换电影 | 人人干人人艹 | 日韩在线观看不卡 | 视频一区二区在线 | jav中文字幕 |