返回顶部
首页 > 资讯 > 前端开发 > html >ES6新数据结构Set与WeakSet怎么用
  • 734
分享到

ES6新数据结构Set与WeakSet怎么用

2024-04-02 19:04:59 734人浏览 八月长安
摘要

这篇文章主要介绍es6新数据结构Set与WeakSet怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!新数据结构Set与WeakSet1. SetSet类似于数据,但是成员值都是

这篇文章主要介绍es6数据结构Set与WeakSet怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

新数据结构Set与WeakSet

1. Set

Set类似于数据,但是成员值都是唯一的。生成Set的方式如下。

var s = new Set();
[1,1,3,3,5,5].map( x => s.add(x) );
console.log(s); //Set {1, 3, 5}

没有重复值哟,如果面试官再让你编写数组去重的函数是不是简单多了。或者你可以这样写。

var set = new Set( [2,2,4,4,6,6] ); //Set {2, 4, 6}
console.log(set);

其实,Set作为构造函数使用时,接受的参数不仅可以是数组,任何类数组的对象也可以。Set的成员可以是对象,只是每个对象唯一。

那么,我们如何操纵Set呢。

s.add(val); //为s添加val,返回s
s.delete(val); //删除val,返回表示成功与否的布尔值
s.has(val); //返回表示s是否拥有成员val的布尔值
s.clear(); //清除所有成员

map与filter方法可以作用于数组,也可以用于Set(见第一个代码块)。

那么,我们如何遍历Set呢。

依然是 keys() , values() , entries() , forEach() . 举例如下(默认情况下Set的键与值相同):

var s = new Set();
var ul = document.getElementsByTagName('ul');
[1,1,3,3,5,5].map( x => s.add(x) );
for ( let key of s.keys() ){
  console.log(key); //1 , 3, 5
}
for ( let val of s.values() ){
  console.log(val); //1, 3,5
}
for ( let item of s.entries() ){
  console.log(item[0],item[1]); // 1 1 , 3 3, 5 5
}
for ( let [key,val] of s.entries() ){
  console.log(key,val); // 1 1 , 3 3, 5 5
}
s.forEach( function( val , key , ul ){
  console.log( this ); //ul
  console.log( val , key);
} , ul );

可以使用...扩展操作符把Set转换成数组。

2.WeakSet

WeakSet与Set类似,也是不重复的集合。区别在于:WeakSet的成员只能是对象;WeakSet中的对象是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用。当其他变量不再引用某对象,其将被垃圾回收机制回收,哪怕这个对象被WeakSet引用。这意味着,WeakSet的成员是无法被引用的,无法遍历WeakSet。WeakSet只有add、delete和has三个方法。注意:WeakSet没有size属性,也没有forEach方法。

对于WeakSet不能被遍历,可以这样解释。因为其成员都是弱引用,随时可能消失,遍历机制无法保证其成员一直存在。

那你可能问,WeakSet用来做什么,答,储存DOM节点,这样移除DOM时就可以不用担心内存泄漏了。

以上是“ES6新数据结构Set与WeakSet怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: ES6新数据结构Set与WeakSet怎么用

本文链接: https://lsjlt.com/news/76740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ES6新数据结构Set与WeakSet怎么用
    这篇文章主要介绍ES6新数据结构Set与WeakSet怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!新数据结构Set与WeakSet1. SetSet类似于数据,但是成员值都是...
    99+
    2024-04-02
  • ES6中Set结构怎么用
    这篇文章主要介绍了ES6中Set结构怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:Set 类似于数组,但是成员的值都是唯一的...
    99+
    2024-04-02
  • ES6新数据结构Map功能怎么用
    这篇文章主要介绍ES6新数据结构Map功能怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:新数据结构MapJavaScript中对象的本质是键值对的集合,但是键只能是字...
    99+
    2024-04-02
  • 新增的es6数据结构是什么
    本文小编为大家详细介绍“新增的es6数据结构是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“新增的es6数据结构是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • ES6新数据结构Map功能如何用
    这篇文章主要介绍“ES6新数据结构Map功能如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6新数据结构Map功能如何用”文章能帮助大家解决问题。新数据结构MapJavaScript中对象的...
    99+
    2023-06-17
  • Map和Set两种数据结构在ES6的作用是什么
    这篇文章主要介绍“Map和Set两种数据结构在ES6的作用是什么”,在日常操作中,相信很多人在Map和Set两种数据结构在ES6的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • ES6中Set和Map数据结构的示例分析
    这篇文章主要介绍了ES6中Set和Map数据结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES6 的 Set:ES6 提供了新...
    99+
    2024-04-02
  • Java数据结构中的Map与Set该怎么理解
    这篇文章主要为大家分析了Java数据结构中的Map与Set该怎么理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java数据结构中的Map与Set该怎么理...
    99+
    2023-06-29
  • ES6中的Map与Set怎么用
    这篇文章主要介绍了ES6中的Map与Set怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6中的Map与Set怎么用文章都会有所收获,下面我们一起来看看吧。Map 对象Map 对象保存键值对。任何值(对...
    99+
    2023-06-27
  • JavaScript的Set数据结构是什么
    JavaScript的Set数据结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 什么是 SetSet 可以简单的看作是数学上的集合。它是一系列无...
    99+
    2023-06-22
  • Java数据结构之Map与Set专篇讲解
    目录①只出现一次的数字②宝石与石头③坏键盘打字④复制带随机指针的链表①只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次...
    99+
    2024-04-02
  • ES6中Map结构怎么用
    这篇文章主要介绍了ES6中Map结构怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:Map 数据结构类似于对象,也是键值对的集...
    99+
    2024-04-02
  • golang中set数据结构如何使用
    本篇内容主要讲解“golang中set数据结构如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“golang中set数据结构如何使用”吧!借助map实现golang中没有set数据结构,一般...
    99+
    2023-07-05
  • ES6中怎么使用Map与Set集合
    这期内容当中小编将会给大家带来有关ES6中怎么使用Map与Set集合,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。集合的概念以及和数组的区别其实数组也是集合, 只不过数组...
    99+
    2024-04-02
  • golang中set数据结构的使用示例
    目录借助map实现算法应用借助map实现 golang中没有set数据结构,一般是通过map实现,因为map的key值是不能重复的 示例 type empty struct { } ...
    99+
    2023-03-08
    golang set数据结构 golang set
  • ES6 javascript中class类的get与set怎么用
    这篇文章将为大家详细讲解有关ES6 javascript中class类的get与set怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:与 ES5 一样, 在...
    99+
    2024-04-02
  • C#数据结构与队列怎么实现
    这篇文章主要讲解了“C#数据结构与队列怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#数据结构与队列怎么实现”吧!C#数据结构与算法之队列是一种特殊的线性表,它只允许在表的前端(f...
    99+
    2023-06-18
  • JavaScript数据结构与算法怎么理解
    本篇内容主要讲解“JavaScript数据结构与算法怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript数据结构与算法怎么理解”吧!前言数据结构与算法这个词相信大家都听过、...
    99+
    2023-07-02
  • Python数据结构与算法中的栈怎么构建
    本篇内容主要讲解“Python数据结构与算法中的栈怎么构建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据结构与算法中的栈怎么构建”吧!什么是栈栈有时也被称作“下推栈”。它是有序集...
    99+
    2023-06-29
  • mysql怎么复制表结构及数据到新表
    本篇内容主要讲解“mysql怎么复制表结构及数据到新表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么复制表结构及数据到新表”吧!复制表结构及数据到新表CREATE TABLE 新表...
    99+
    2023-06-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作