日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: xxxx日本少妇 | 97视频在线观看免费高清完整版在线观看 | 人人艹视频 | 青草青草视频 | 国产午夜视频在线 | 丰满大乳少妇在线观看网站 | 91欧美激情一区二区三区成人 | 成人在线激情网 | 欧美不卡 | 春物催眠 | 免费成人黄色网址 | 天天操好逼 | 国产日韩一区二区在线 | 综合久久久久久 | 日韩欧美不卡 | 日韩高清片 | 男女视频免费观看 | 三级黄色视屏 | 欧美日韩国产大片 | 制服.丝袜.亚洲.中文.综合懂色 | 久久va | 欧美黄色录像视频 | 福利姬在线观看 | 色在线视频观看 | 日本大乳美女 | 涩涩网站在线看 | 天天天天天干 | 91亚洲精| 久久久久免费精品 | 久久久久久久久久久国产精品 | 中文av免费观看 | 午夜桃色 | 午夜爽爽爽视频 | 天天操天天碰 | 五十路av在线 | 国外成人性视频免费 | 绿帽单男| xxxxwww一片| 国产主播精品在线 | 男人天堂免费视频 | 桃色一区二区 | 日本色一区 | 国产一区二区小说 | 误杀1电影免费观看高清完整版 | 亚洲综合在线观看视频 | 国产色播 | 人人澡人人看 | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | 可以免费观看av的网站 | 国产99re| 日韩精品视频在线播放 | 永久视频 | 69av网 | 欧美一区二区三区免费看 | 国产午夜精品久久久 | 超薄肉色丝袜一二三 | 中文字幕色哟哟 | 中文字幕乱码av | 亚洲一区久久久 | 色撸撸在线视频 | 国产日韩在线免费观看 | 椎名空在线 | 在线观看亚洲欧美 | 国产无套丰满白嫩对白 | 黄色片www | 一本色道综合久久欧美日韩精品 | 乱妇乱女熟妇熟女网站 | 特黄特色特刺激免费播放 | 国产精品成人一区二区三区电影毛片 | 国产麻豆自拍 | 欧洲熟妇的性久久久久久 | 欧美 日韩 国产 高清 | 777免费视频 | 欧美亚洲日本 | 91黄色在线视频 | 精品国产一区二区三区在线观看 | 国产乱码一区二区三区在线观看 | 无码精品视频一区二区三区 | 日本一本在线观看 | 亚洲性生活网站 | 日本免费福利视频 | 久久久亚洲一区二区三区 | 得得的爱在线视频 | 国产视频黄| 亚洲激情网 | 毛片网站免费观看 | 男人免费视频 | 亚州一级 | 国产亚洲精品av | 久久www视频 | 日韩欧美色图 | 日韩精品一区二区三区av | 久久国产一区二区 | 成人激情开心网 | 欧美一级久久久 | 亚洲成人免费 | 森泽佳奈av | 久久国产精品免费看 | 国产人妻aⅴ色偷 |