JS中的算法与数据结构之集合(Set)实例详解

yizhihongxing

JS中的算法与数据结构之集合(Set)实例详解

1. 什么是Set?

Set 是ES6新增的数据结构,它是一种无序且唯一的数据集合,类似于数组,但是它不允许有相同的元素存在,可以用来存储任何类型的值(对象,字符串,数字等)。 Set可以显著地提高数据读取效率和数据去重的效果。

2. Set的使用方法

2.1 创建Set并添加元素

// 创建set
const set = new Set()
// 添加元素
set.add(1)
set.add(2)
set.add(3)
console.log(set)  // Set(3) {1, 2, 3}

2.2 Set的基本操作

  • has(): 判断某个元素是否在set中
  • delete(): 删除某个元素
  • clear(): 删除set中所有元素
// set基本操作
console.log(set.has(2))  // true
set.delete(2)
console.log(set)  // Set(2) {1, 3}
set.clear()
console.log(set)  // Set(0) {}

2.3 Set实现数组去重

const arr = [1, 2, 3, 2, 4, 3, 5]
const set = new Set(arr)
const newArr = [...set]
console.log(newArr)  // [1, 2, 3, 4, 5]

3. Set的实例应用

3.1 判断字符串中有多少个不同的字符

const countChar = str => {
  const set = new Set(str)
  return set.size
}
console.log(countChar('hello world')) // 9

3.2 求两个数组的交集

const intersection = (arr1, arr2) => {
  const set1 = new Set(arr1)
  const set2 = new Set(arr2)
  return [...set1].filter(item => set2.has(item))
}
console.log(intersection([1, 2, 3], [2, 3, 4])) // [2, 3]

4. 结语

本文主要介绍Set这种数据结构的基本操作和实例应用,这个数据结构在实际编程中非常实用,能够大大提高程序的效率。开发者可以结合实际应用场景灵活使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中的算法与数据结构之集合(Set)实例详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 浏览器加载、渲染和解析过程黑箱简析

    浏览器加载、渲染和解析过程黑箱简析 浏览器是用户访问互联网的主要工具之一,那么浏览器是如何加载、渲染和解析网页的呢?这里我们将对这个过程进行完整的攻略。 加载过程 浏览器加载过程主要有以下几个步骤: 浏览器通过DNS查询获取域名对应的IP地址 浏览器向服务器发送HTTP请求,请求获取相应的HTML文件 服务器响应HTTP请求,将HTML文件返回给浏览器 浏览…

    JavaScript 2023年6月11日
    00
  • vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法

    针对“vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法”的完整攻略,我们可以采用以下步骤进行实现: 1. 使用Scroll Behavior vue-router提供了一个非常好用的配置项scrollBehavior,它可以在页面切换时实现滚动条自动滚动到页面顶部。只需要在创建VueRouter实例时,添加如下代码即可: const ro…

    JavaScript 2023年6月11日
    00
  • FF IE浏览器修改标签透明度的方法

    下面是“FF IE浏览器修改标签透明度的方法”的详细讲解: 1.使用CSS属性opacity 可以使用CSS属性opacity来修改标签透明度,在FF和IE浏览器上都适用。opacity属性的值为0到1之间的浮点数。其中,0表示完全透明,1表示完全不透明。 示例1:将ID为myDiv的div标签设置为50%透明 #myDiv { opacity: 0.5; …

    JavaScript 2023年6月11日
    00
  • JavaScript学习笔记之Function对象

    下面是关于“JavaScript学习笔记之Function对象”的完整攻略。 1. Function对象的概述 在JavaScript中,函数(Function)也是一种数据类型。Function对象是JavaScript内置对象之一,它可以通过Function构造函数来创建,也可以通过函数表达式直接创建。 2. Function对象的创建 2.1 通过Fu…

    JavaScript 2023年5月27日
    00
  • jQuery的DOM操作之删除节点示例

    下面是jQuery的DOM操作之删除节点示例的完整攻略。 一、为什么需要删除节点 Web页面通常需要根据真实情景来动态地添加或删除元素,以此来实现一些交互效果或动态展示数据,而jQuery框架中封装了大量的DOM操作方法,使得我们可以更加轻松地完成与页面元素有关的各种操作。 在页面制作中,有时候要动态的删除网页中的某些元素节点,例如通过ajax技术从服务器获…

    JavaScript 2023年6月10日
    00
  • JavaScript深拷贝的一些踩坑记录

    JavaScript深拷贝的一些踩坑记录 在 JavaScript 中,深拷贝是比较常见的操作,特别是在处理复杂的数据结构时。但是,JavaScript 中的深拷贝有很多坑点,如果处理不当,就会发生莫名其妙的错误。本文就来总结一下 JavaScript 深拷贝时常见的问题和解决方案。 为什么要进行深拷贝 在 JavaScript 中,对象是通过引用来传递的。…

    JavaScript 2023年6月10日
    00
  • JS实现刷新网页后之前浏览位置保持不变示例详解

    JS实现刷新网页后之前浏览位置保持不变的功能,主要需要利用HTML5中的History API和Session Storage来实现。 具体过程步骤如下: 1.获取网页当前滚动位置,可以使用JavaScript代码document.documentElement.scrollTop或者document.body.scrollTop来获取当前滚动位置。 let…

    JavaScript 2023年6月11日
    00
  • Javascript Date toTimeString() 方法

    以下是关于JavaScript Date对象的toTimeString()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toTimeString()方法 JavaScript的toTimeString()方法返回表示日期时间部分的字符串,该字符串格式为本地时间。该方法不接受任何参数。 下面是对象的toTimeString()方法的例…

    JavaScript 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部