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日

相关文章

  • 5个实用的JavaScript新特性

    5个实用的JavaScript新特性攻略 JavaScript是一种非常流行的编程语言,随着时代的发展,JavaScript也在不断发展,新的特性和语法不断涌现。在本篇攻略中,我们将探讨5个实用的JavaScript新特性,帮助你更好地掌握JavaScript的使用。 1. 可选链运算符 可选链运算符(Optional Chaining Operator)是…

    JavaScript 2023年5月17日
    00
  • JavaScript 正则表达式解析

    JavaScript 正则表达式是一种用于模式匹配的功能强大工具。正则表达式由一个或多个字符组成,用于描述文本中的模式并执行匹配操作。本文将为你提供一份完整攻略,以帮助你更深入了解 JavaScript 正则表达式。 什么是正则表达式 正则表达式是一种描述文本模式的语言。它们可以用于搜索、替换和验证字符串。在 JavaScript 中,正则表达式是一种对象类…

    JavaScript 2023年5月28日
    00
  • ie下$.getJSON出现问题的解决方法

    让我来详细讲解“ie下$.getJSON出现问题的解决方法”的完整攻略。 问题描述 当我们在Internet Explorer(IE)浏览器中使用$.getJSON方法来获取数据时,会遇到跨域请求失败的问题,具体表现为:- 控制台报错:Access is denied.- 监控工具中看不到跨域请求。 解决方法 方法一:使用代理 使用代理的原理是先创建一个后端…

    JavaScript 2023年5月27日
    00
  • JS实现打字游戏

    JS实现打字游戏可以分为以下几个步骤: 界面设计:需要设计一个游戏界面,包含游戏主体、计分、倒计时等功能。可以使用HTML和CSS实现。 数据源准备:需要准备好游戏需要使用到的文本内容,可以通过数组存储。 代码实现:分为游戏初始化、键盘事件监听、计分等多个功能模块。 详细说明如下: 游戏初始化 游戏初始化需要以下两个步骤: 步骤1:获取游戏需要用到的DOM元…

    JavaScript 2023年5月28日
    00
  • 借助FileReader实现将文件编码为Base64后通过AJAX上传

    这里是借助FileReader实现将文件编码为Base64后通过AJAX上传的完整攻略: 1. 读取文件 首先通过input元素选择上传的文件,使用FileReader的readAsDataURL方法将文件读取为Base64编码的url形式。代码如下: <input type="file" id="file"&g…

    JavaScript 2023年5月19日
    00
  • javascript深拷贝的几种情况总结

    JavaScript深拷贝的几种情况总结 在 JavaScript 中,对于对象的赋值,常常会遇到浅拷贝和深拷贝的问题。浅拷贝只复制对象的引用,而深拷贝则是复制对象的值。这篇文章将总结 JavaScript 中深拷贝的几种情况以及对应的实现方法。 基本数据类型 字符串、数值、布尔类型(string, number, boolean) 基本数据类型的深拷贝非常…

    JavaScript 2023年6月10日
    00
  • 如何解决attachEvent函数时,this指向被绑定的元素的问题?

    在解决attachEvent函数中this指向被绑定的元素问题之前,我们需要了解attachEvent函数以及this指针的相关知识。 attachEvent函数 attachEvent是IE浏览器特有的一种事件绑定方法,用于绑定DOM元素的事件(如点击、鼠标移动、键盘输入等),其语法如下: element.attachEvent(event, functi…

    JavaScript 2023年6月11日
    00
  • 微信小程序 开发指南详解

    微信小程序开发指南详解 微信小程序是一种新型的移动应用程序,能够在微信里面直接运行,不需要额外的下载和安装,具有运行快速、使用方便等优点。本文将详细介绍微信小程序的开发流程,包括微信小程序的创建、开发工具的使用、页面和组件的开发、云开发等内容。 微信小程序的创建 微信小程序的创建需要先登录微信小程序开发者平台,如果没有账号需要先注册。登录后在开发者中心可以进…

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