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

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日

相关文章

  • JavaScript块级作用域绑定的实现流程

    JavaScript的块级作用域绑定是ES6中新增的特性,它使得变量声明可以仅在块级作用域中起作用,可以避免因变量定义不当所出现的一些各种问题。块级作用域是指一对花括号”{ }”之间的区域,这种变量称为块级作用域变量。 实现块级作用域绑定的流程主要依靠let和const关键字这两个特性。let关键字声明的变量只在声明位置所在的块级作用域内有效,const关键…

    JavaScript 2023年5月27日
    00
  • 精通JS正则表达式(推荐)

    精通JS正则表达式(推荐)攻略 什么是正则表达式? 正则表达式是一种用于匹配字符串模式的工具,它可以帮助我们对字符串进行复杂的匹配和替换操作。JavaScript中的正则表达式是由一个模式和一些可选的标志组成的。 正则表达式的语法 在 JavaScript 中,正则表达式是包含在斜杠之间的模式,如下所示: var pattern = /test/; // 匹…

    JavaScript 2023年6月10日
    00
  • javascript对象的相关操作小结

    JavaScript对象的相关操作小结 1. JavaScript对象介绍 JavaScript对象是一种复合数据类型,可以用于存储同一类型的数据。 2. 创建JavaScript对象的三种方式 JavaScript对象可以通过字面量、构造函数和Object.create()创建。 2.1 字面量创建对象 示例代码: var obj = { name: &q…

    JavaScript 2023年5月27日
    00
  • JS中比Switch…Case更优雅的多条件判断写法

    JS中使用Switch…Case方式进行多条件判断的常见缺点是比较冗长,不够简洁和优雅。本文将为大家介绍一种利用对象字面量来进行多条件判断的方式,来让代码更加优雅和易读。 使用对象字面量进行多条件判断的写法 使用对象字面量方式进行多条件判断,我们可以通过JS对象属性来表示条件判断中的每个case,通过函数属性来表示每个case对应的逻辑操作。示例如下: …

    JavaScript 2023年6月11日
    00
  • [翻译] JW Media Player 中文文档第4/4页

    首先需要说明的是,JW Media Player 是一款广泛使用的媒体播放器。其官方文档提供了详细的中文翻译,这里以第4/4页为例,为大家讲解如何将其翻译出来。 以下是完整的翻译攻略: 1. 下载原始文档 首先需要从官网上下载原始的英文文档,网址为:https://developer.jwplayer.com/jw-player/docs/developer…

    JavaScript 2023年6月11日
    00
  • Vue中this.$router和this.$route的区别及push()方法

    Vue中的this.$router和this.$route都是Vue Router提供的路由对象,它们的区别和作用如下: this.$router是Vue Router实例,用来操作路由的跳转、钩子函数等等; this.$route是当前活跃的路由对象,包含了当前路由的各种信息,如参数、路径、路由器地址等。 下面来详细讲解一下Vue中router和route…

    JavaScript 2023年6月11日
    00
  • JavaScript中常用的验证reg

    下面是详细讲解“JavaScript中常用的验证reg”的完整攻略。 正则表达式简介 正则表达式是一种描述性的语言,用于描述字符的模式匹配的规则。它通常被用于搜索、替换操作以及表单验证等场景中。 JavaScript中的正则表达式被表示为一个正则表达式对象,可以通过RegExp()构造函数创建。正则表达式对象包括一个模式和一些标记,用于指定匹配的方式。 基本…

    JavaScript 2023年6月10日
    00
  • JavaScript中Webpack的使用教程

    下面我将为您详细讲解JavaScript中Webpack的使用教程的完整攻略。 什么是Webpack? Webpack是一个现代JavaScript应用程序的静态模块打包器。当Webpack处理您的应用程序时,它会递归地构建一个依赖关系图,这个依赖关系图包含了您应用程序的每个模块,并生成一个或多个凝结在一起的bundle。 Webpack需要理解以下四个核心…

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