JavaScript Set 全新方法
Mozilla开发者博客宣布,JavaScript Set迎来了一系列新方法,这些方法已经在大多数主流浏览器引擎(从Firefox 127开始)中得到支持。这意味着开发者无需使用polyfill就能在各种浏览器上使用这些新方法。
新方法包括:
intersection()
: 返回一个新集合,其中包含当前集合和给定集合的交集元素。union()
: 返回一个新集合,其中包含当前集合和给定集合的所有元素。difference()
: 返回一个新集合,其中包含当前集合中存在但给定集合中不存在的元素。symmetricDifference()
: 返回一个新集合,其中包含存在于当前集合或给定集合中,但不同时存在于两个集合中的元素。isSubsetOf()
: 返回一个布尔值,指示当前集合的所有元素是否都存在于给定集合中。isSupersetOf()
: 返回一个布尔值,指示给定集合的所有元素是否都存在于当前集合中。isDisjointFrom()
: 返回一个布尔值,指示当前集合和给定集合是否没有共同元素。
JavaScript Set简介
Set类似于数组,但每个值只能存储一次,确保了集合中元素的唯一性。与数组相比,检查元素是否存在于Set中通常更快,这在需要关注大型数据集性能的用例中非常适用。 此外,开发者还可以根据现有集合创建具有特定逻辑属性的新集合。
const dogs = new Set(); const yoshi = { name: "Yoshi", personality: "Friendly" }; dogs.add(yoshi);
新方法应用示例
union()
方法: 用于创建包含两个集合所有元素的新集合,并去除了重复元素。
// Create a union of both sets const unionSet = set1.union(set2); // List the items in the union unionSet.forEach((item) => { const li = document.createElement("li"); li.textContent = item; unionList.appendChild(li); });
intersection()
方法: 用于查找两个集合的交集元素。
// Make the intersection set const intersectionSet = set1.intersection(set2); // Loop through lists and highlight if they're in the intersection allListItems.forEach((item) => { if (intersectionSet.has(item.textContent)) { item.className = "match"; } });
symmetricDifference()
方法: 用于查找存在于两个集合中的任何一个集合中,但不同时存在于两个集合中的元素。
const setNotBoth = set1.symmetricDifference(set2); allListItems.forEach((item) => { if (setNotBoth.has(item.textContent)) { item.className = "match"; } });
difference()
方法: 用于查找存在于一个集合中但不存在于另一个集合中的元素。
const set1only = set1.difference(set2); const set2only = set2.difference(set1); allListItems.forEach((item) => { if (set1only.has(item.textContent)) { item.className = "setOneMatch"; } else if (set2only.has(item.textContent)) { item.className = "setTwoMatch"; } });
isSubsetOf()
、isSupersetOf()
和isDisjointFrom()
方法: 用于检查集合之间的包含关系和不相交关系。
if (set1.isSubsetOf(set2)) { oneSubTwo.textContent += " [TRUE]"; } else { oneSubTwo.textContent += " [FALSE]"; }
详情查看:https://developer.mozilla.org/en-US/blog/javascript-set-methods/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
字节跳动回应与博通合作开发 AI 芯片:消息不实
有消息称字节跳动为削减采购成本并确保高端 AI 芯片供应稳定,与美国博通(Broadcom)合作开发先进AI处理器。针对该消息,字节跳动方面对第一财经记者回应称:消息不实。 据媒体报道,字节跳动与博通合作开发的处理器为5nm ASIC(专用集成电路),ASIC是一种面向特定应用场景的专用芯片,通过算法固化实现性能和能效最大化,平均性能强、功耗低、性价比高,但前期投入大且研发时间较长,且不具备通用性。预计该处理器将符合美国出口管制新规,制造工作部分将外包给台积电 。 消息人士称,虽然目前芯片设计工作正顺利进行中,但仍未进入“流片”(试生产)阶段,预计台积电方面今年不会生产这款芯片。截至发稿,台积电方面暂未发表回应。此前,字节跳动已购买博通的Tomahawk 5nm芯片和Bailly交换机,用于AI计算机集群。 字节跳动近些年持续投入芯片领域,字节跳动旗下火山引擎总裁谭待此前在接受媒体采访时表示,算力在当下行业情况下,是一个异构算力系统,每个团队有不同的芯片选择,不同的芯片有不同的擅长领域。有的内存大,有的算力强,有的兼容性好。而对平台方来讲,规模优势始终存在,不论未来是否会出现更多底层供...
- 下一篇
openKylin 西安用户组成立,多地用户组持续招募中!
6月22日,由openKylin社区主办、西安邮电大学计算机学院协办的2024年度openKylin Meetup第六期线下沙龙,在西安邮电大学东区逸夫教学楼圆满举行。此次活动汇聚了西安地区的openKylin用户及西邮Linux兴趣小组众多成员相聚,围绕开源操作系统的创新发展、openKylin最新发布版本的使用体验、openKylin在RISC-V领域的布局等话题进行了交流研讨。 成立仪式 活动现场,西邮Linux兴趣小组指导老师王小银及多位小组成员加入openKylin西安用户组,众多开源技术爱好者共同见证了openKylin西安用户组的成立,这标志着openKylin在西安地区的发展迈出了坚实一步。用户组的成立将为西安地区的用户提供一个交流、学习和合作的平台,促进openKylin操作系统在本地的应用和推广。 主题分享 1.《openKylin社区成果进展及城市用户组介绍》 openKylin Community SIG Maintainer范娇,就Linux和开源软件生态、openKylin社区治理体系及阶段成果、开发者参与社区实践的收获成长、openKylin城市用户组...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19