资讯专栏INFORMATION COLUMN

ES6中的Set数据结构

lk20150415 / 1400人阅读

摘要:是提供的一种新的数据结构,它允许你存储任何类型的唯一值,而且中的元素是唯一的。我们用操作符来生成一个对象基本用法元素是唯一的可以用来数组去重属性和方法结构的实例有以下属性构造函数,默认就是函数。返回实例的成员总数。

Set 是ES6提供的一种新的数据结构,它允许你存储任何类型的唯一值,而且Set中的元素是唯一的。

我们用new操作符来生成一个Set对象

基本用法
let arr = [1,2,3,1,2,2,1,2,1,1];
let set = new Set(arr);
set.size // 3
[...set] // [1,2,3] 元素是唯一的 可以用来数组去重
属性和方法

set结构的实例有以下属性

Set.prototype.constructor: 构造函数,默认就是Set函数。
Set.prototype.size: 返回Set实例的成员总数。

方法

方法 用法
Set.prototype.add(value) 在Set对象尾部添加一个元素。返回Set对象
Set.prototype.clear() 移除Set对象内的所有元素
Set.prototype.delete(value) 移除Set中与value值相等的元素
Set.prototype.has() 返回一个布尔值,表示该值是否为Set的成员
Set.prototype.keys() 返回键名的遍历器
Set.prototype.values() 返回键值的遍历器
Set.prototype.entries() 返回键值对的遍历器
Set.prototype.forEach() 使用回调函数遍历每个成员
let set = new Set()
set.add(0).add(1).add(1).add(2);
set.size//3
set.has(1) //true
set.has(5) //false
set.delete(1);
set.has(1) // false
set.clear();

Array.from 方法可以将Set结构转为数组。

let set = new Set([1,2,2,3,2,3,4]);
let arr = Array.from(set) //1,2,3,4
遍历操作
let set = new Set(["red", "green", "blue"]);

for (let item of set.keys()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.values()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.entries()) {
  console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]

set.forEach((value, key) => console.log(key + " : " + value))
//red : red
//green : green
//blue : blue

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98070.html

相关文章

  • 深入理解:ES6中的Set和Map数据结构,Map与其它数据结构的互相转换

    摘要:学习笔记工作中常用到的语法只是简单提及和,今天有空于是写了这篇文章深入理解中的和数据结构,与其它数据结构的互相转换。的提供了新的数据结构。本身是一个构造函数,用来生成数据结构。 文中的内容主要是来自于阮一峰的《ES6标准入门》(第三版)。《学习ES6笔记──工作中常用到的ES6语法》只是简单提及Set和Map,今天有空于是写了这篇文章──《深入理解:ES6中的Set和Map数据结构,M...

    Cristalven 评论0 收藏0
  • 深入理解ES6笔记(七)Set集合和Map集合

    摘要:创建并添加项目可以使用数组来初始化一个,并且构造器会确保不重复地使用这些值使用方法来测试某个值是否存在于中移除值使用方法来移除单个值,或调用方法来将所有值从中移除。属性的初始化将数组传递给构造器,以便使用数据来初始化一个。 主要知识点:Set的基本操作,Weak Set,Map的基本操作,Weak MapshowImg(https://segmentfault.com/img/bVbf...

    loostudy 评论0 收藏0
  • ES6-前世今生(0)

    摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...

    LeviDing 评论0 收藏0
  • ES6系列---Set集合与Map集合

    摘要:中模拟与长久以来,数组一直是中唯一的集合类型。用数组初始化集合事实上,只要是可迭代对象数组集合集合,都可以作为构造函数的参数。构造函数通过迭代器从参数中提取值。 ES5中模拟Set与Map 长久以来,数组一直是JavaScript中唯一的集合类型。如果开发者们需要使用非数值型索引,就会用非数组对象创建所需的数据结构,而这就是Set集合与Map集合的早期实现。 一般来说,Set集合常被用...

    happyhuangjinjin 评论0 收藏0
  • 细说es6中的Set和Map

    摘要:返回一个布尔值,表示该值是否为的成员。返回键名的遍历器返回键值的遍历器返回键值对的遍历器使用回调函数遍历每个成员需要特别指出的是,的遍历顺序就是插入顺序。该数组的所有成员,都会自动成为实例对象的成员。这意味着,数组的成员只能是对象。 1.Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构...

    Ryan_Li 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<