国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

ES6中Set和Map數(shù)據(jù)結(jié)構(gòu),Map與其它數(shù)據(jù)結(jié)構(gòu)互相轉(zhuǎn)換操作實例詳解

2024-05-06 15:42:01
字體:
供稿:網(wǎng)友

本文實例講述了ES6中Set和Map數(shù)據(jù)結(jié)構(gòu),Map與其它數(shù)據(jù)結(jié)構(gòu)互相轉(zhuǎn)換操作。分享給大家供大家參考,具體如下:

ES6 的 Set:

ES6 提供了新的數(shù)據(jù)結(jié)構(gòu)──Set。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。

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

Array和Set對比

都是一個存儲多值的容器,兩者可以互相轉(zhuǎn)換,但是在使用場景上有區(qū)別。如下:

①Array的indexOf方法比Set的has方法效率低下
②Set不含有重復(fù)值(可以利用這個特性實現(xiàn)對一個數(shù)組的去重)
③Set通過delete方法刪除某個值,而Array只能通過splice。兩者的使用方便程度前者更優(yōu)
④Array的很多新方法map、filter、some、every等是Set沒有的(但是通過兩者可以互相轉(zhuǎn)換來使用)

一、Set 實例的操作方法:

let set = new Set();set.add(1);set.add("1");console.log(set.size); // 2

可以使用數(shù)組來初始化一個 Set ,并且 Set 構(gòu)造器會確保不重復(fù)地使用這些值:

let set = new Set([1, 2, 3, 4, 5, 5, 5, 5]);console.log(set.size); // 5

add(value): 添加某個值,返回Set結(jié)構(gòu)本身
has(value): 返回布爾值,表示該值是否為Set的成員

let set = new Set();set.add(1);set.add("1");console.log(set.has(1)); // trueconsole.log(set.has(6)); // false

delete(value): 刪除某個值,返回一個布爾值,表示是否成功
clear(value):清除所有成員,沒有返回值

let set = new Set();set.add(1);set.add("1");console.log(set.has(1)); // trueset.delete(1);console.log(set.has(5)); // falseconsole.log(set.size); // 1set.clear();console.log(set.size); // 0

二、Set遍歷操作

keys():返回鍵名的遍歷器
values(): 返回健值對的遍歷器
entries():返回鍵值對的遍歷器
forEach(): 每個成員

let set = new Set(['red', 'green', 'blue']);for (let item of set.keys()) { console.log(item);}// red// green// bluefor (let item of set.values()) { console.log(item);}// red// green// bluefor (let item of set.entries()) { console.log(item);}// ["red", "red"]// ["green", "green"]// ["blue", "blue"]

forEach()

let set = new Set([1, 2]);set.forEach(function(value, key, ownerSet) {  console.log(key + ": " + value);});// 輸出// 1 :1// 2: 2

三、ES6數(shù)組去重(面試也經(jīng)常會問到數(shù)組去重的問題)

let arr = [1, 2, 2, 3];let set = new Set(arr);let newArr = Array.from(set);console.log(newArr); // [1, 2, 3]

Set集合轉(zhuǎn)化Array數(shù)組

let set = new Set([1, 2, 3, 3, 4]);let arr = Array.from(set) //輸出[1,2,3,4]

四、WeakSet

WeakSet結(jié)構(gòu)與Set類似,它與Set有兩個區(qū)別:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 金堂县| 葫芦岛市| 镇原县| 四子王旗| 潍坊市| 黎川县| 双牌县| 遵化市| 阿荣旗| 南华县| 屏东县| 磐石市| 和田县| 儋州市| 怀远县| 浙江省| 安阳市| 龙南县| 政和县| 淮阳县| 上杭县| 定州市| 中山市| 平安县| 吴川市| 莎车县| 家居| 皮山县| 尼勒克县| 永年县| 北宁市| 怀宁县| 丰城市| 瑞安市| 安龙县| 成武县| 图木舒克市| 通化县| 筠连县| 昔阳县| 缙云县|