广告
返回顶部
首页 > 资讯 > 精选 >JavaScript字典与集合怎么应用
  • 487
分享到

JavaScript字典与集合怎么应用

2023-07-02 17:07:39 487人浏览 独家记忆
摘要

本篇内容主要讲解“javascript字典与集合怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript字典与集合怎么应用”吧!字典什么是字典说到字典,第一时间想到的应该就是新

本篇内容主要讲解“javascript字典与集合怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript字典与集合怎么应用”吧!

字典

什么是字典

说到字典,第一时间想到的应该就是新华字典,实际上,这跟编程中的字典类似,两者都有一个特点,就是一一对应(yi yi dui ying),或者说是映射

字典通常以**【键,值】** 对的形成存储,因为是以键值对的形式存储,更方便通过key来获取value

比如存储用户信息:

{  'username': '一碗周',  'age': 18}

JavaScript中的字典

在JavaScript中,对象好像拥有字典的所有特点,但是在es6中新增Map,用来表示字典,这里的map不是翻译成地图,而是映射。

示例代码如下:

// 创建一个字典const map = new Map()// 往字典中存储信息map.set('username', '一碗周')map.set('age', 18)console.log(map) // Map(2) { 'username' => '一碗周', 'age' => 18 }

字典的应用

在学习链表的时候我们做了一个算法题,是力扣中题号为20的一道题,它的题目:有效的括号,题目大意就是判断给定字符串中的括号是否匹配,匹配返回true,否则返回false

解题思路如下:

  • 判断字符串的长度是否为偶数,不为偶数直接返回false,因为括号都是成对出现的;

  • 新建一个栈;

  • 遍历字符串,遍历到每一项时如果时左括号,将其压入栈;如果是右括号,与栈顶对比,如果相匹配则出栈,不匹配则返回false

我们原来的解法:

var isValid = function(s) {    if (s.length % 2 !== 0) return false    const stack = []    for(let i = 0; i<s.length; i++) {        const c = s[i] // 记录当前项        if (c === '(' || c === '[' || c==='{') {            stack.push(c)        } else {            const t = stack[stack.length - 1] // 获取栈顶元素            if (                (t === '(' && c === ')') ||                (t === '[' && c === ']') ||                (t === '{' && c === '}')             ) {                stack.pop()            } else {                return false            }        }    }    // 如果为0表示全部匹配,有剩余则表示不匹配    return stack.length === 0};

在上面的代码中,条件判断中的判断条件非常的长,这时我们就可以利用字典来优化这个写法,

实现代码如下:

var isValid = function(s) {    // 1. 判断字符串的长度是否为偶数,不为偶数直接返回false,因为括号都是成对出现的;    if (s.length % 2 !== 0) return false    const stack = []    const map = new Map() // 将所有括号的对应关系存储在字典中    map.set('(', ')')    map.set('[', ']')    map.set('{', '}')    for(let i = 0; i<s.length; i++) {        const c = s[i] // 记录当前项        // 判断是否存在 key 也就是左括号,如果存储,将左括号存储在栈中        if (map.has(c)) {            stack.push(c)        } else {            const t = stack[stack.length - 1] // 获取栈顶元素            if (map.get(t) === c) { // 获取最后一个左括号,判断是否与右括号匹配                stack.pop() // 出栈            } else {                return false            }        }    }    // 如果为0表示全部匹配,有剩余则表示不匹配    return stack.length === 0};

在这个代码中,我们优化了if语句中的判断条件。

集合

什么是集合

集合是由一组无序且不重复的元素构成。我们可以将集合看成一种特殊的数组,它的特殊之处就是无序且不重复,这也就意味着我们不能通过下标的方式进行访问,而且集合中不会出现重复的元素;

js中的集合

在JavaScript中提供了集合这个数据结构,即SetMDN中的描述如下:

Set对象是值的集合,你可以按照插入的顺序迭代它的元素。Set中的元素只会出现一次,即Set中的元素是唯一的。

集合中的操作

在集合中主要有以下场景操作:

  • 添加元素到集合中;

  • 在集合中删除某元素;

  • 判断元素是否在集合中;

  • 清空集合;

  • 求交集、并集、差集;

除了最后一种Set对象就为我们提供了对应的方法,示例代码如下:

const arr = [1, 2, 3, 2, 3, 4, 5]// 利用set实现去重const set = new Set(arr) // [1, 2, 3, 4, 5]// 往集合中添加元素set.add(3) // [1, 2, 3, 4, 5] 添加失败,集合中不允许出现重复元素set.add(6) // [1, 2, 3, 4, 5, 6]// 判断元素是否在集合中set.has(2) // trueset.has(7) // false// 删除集合中的元素set.delete(1) // [2, 3, 4, 5, 6]// 清空集合set.clear()

交集、并集、差集的封装

首先我们需要了解一下什么交集、并集、差集。

  • 并集:对于给定的两个集合,返回一个包含两个集合中所有元素的新集合

  • 交集:对于给定的两个集合,返回一个包含两个集合中共有元素的新集合

  • 差集:对于给定的两个集合,返回一个包含所有存在于第一个集合且不存在于第二个集合的元素的新集合

下面这个图更好的解释了什么是交集、并集、差集。

JavaScript字典与集合怎么应用

封装代码如下:

// 求两个集合的并集export function uNIOn(setA, setB) {  let _union = new Set(setA)  for (let elem of setB) {    _union.add(elem) // 因为集合中不存在重复元素  }  return _union}// 求两个集合的交集export function intersection(setA, setB) {  let _intersection = new Set()  for (let elem of setB) {    if (setA.has(elem)) {      _intersection.add(elem)    }  }  return _intersection}// 求两个集合的差集export function difference(setA, setB) {  let _difference = new Set(setA)  for (let elem of setB) {    _difference.delete(elem)  }  return _difference}

封装的这三个方法全部利用了集合不能重复的特性。

到此,相信大家对“JavaScript字典与集合怎么应用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaScript字典与集合怎么应用

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript字典与集合怎么应用
    本篇内容主要讲解“JavaScript字典与集合怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript字典与集合怎么应用”吧!字典什么是字典说到字典,第一时间想到的应该就是新...
    99+
    2023-07-02
  • JavaScript字典与集合应用实例分析
    这篇文章主要介绍“JavaScript字典与集合应用实例分析”,在日常操作中,相信很多人在JavaScript字典与集合应用实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • JavaScript字典与集合详解
    目录字典什么是字典JavaScript中的字典字典的应用集合什么是集合JS中的集合集合中的操作交集、并集、差集的封装字典 什么是字典 说到字典,第一时间想到的应该就是新华字典,实际上...
    99+
    2022-11-13
  • python集合与字典的用法
    python集合与字典的用法 集合: 1.增加  add 2.删除   •del 删除集合          •discard(常用)删除集合中的元素  #删除一个不存在的元素不会报错     •remove 删除一个不存在的元素会报错 ...
    99+
    2023-01-30
    字典 python
  • 怎么用Python合并两个字典
    这篇文章将为大家详细讲解有关怎么用Python合并两个字典,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用Python合并两个字典在python中,我们可以合并两个字典,而无需任何特定方法。 下面的代码是...
    99+
    2023-06-27
  • Python中列表,元组,字典和集合之间怎么转换
    本篇内容主要讲解“Python中列表,元组,字典和集合之间怎么转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中列表,元组,字典和集合之间怎么转换”吧!前排提示:元祖是错误的写法(...
    99+
    2023-06-30
  • python怎么用双星号语法合并字典
    这篇文章主要介绍了python怎么用双星号语法合并字典,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用双星号语法合并字典** (Python 3.5+)这种语法是自Pytho...
    99+
    2023-06-27
  • Redis列表与集合怎么使用
    这篇文章主要讲解了“Redis列表与集合怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis列表与集合怎么使用”吧!列表列表是Redis中另外一种数据类型。下面我们来看看列表中一...
    99+
    2023-06-19
  • JavaScript数据结构之字典方法怎么用
    今天小编给大家分享一下JavaScript数据结构之字典方法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、什么是字...
    99+
    2023-06-30
  • ES6中怎么使用Map与Set集合
    这期内容当中小编将会给大家带来有关ES6中怎么使用Map与Set集合,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。集合的概念以及和数组的区别其实数组也是集合, 只不过数组...
    99+
    2022-10-19
  • Java集合HashSet,TreeSet与LinkedHashSet怎么使用
    本篇内容介绍了“Java集合HashSet,TreeSet与LinkedHashSet怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2023-06-02
  • 使用python怎么获取字典的对应键
    这期内容当中小编将会给大家带来有关使用python怎么获取字典的对应键,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解...
    99+
    2023-06-14
  • 怎么使用python字典取出对应的值
    使用Python字典取出对应的值,可以通过使用字典的键来获取对应的值。有两种常用的方法可以实现:1. 使用方括号`[]`来访问字典中...
    99+
    2023-09-29
    python
  • Java中的set集合怎么应用
    这篇文章主要讲解了“Java中的set集合怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的set集合怎么应用”吧!Set系类集合特点:无序:存取顺序不一致不重复:可以去除重...
    99+
    2023-07-02
  • 怎么使用Python获取字典键对应的值
    这篇文章主要介绍了怎么使用Python获取字典键对应的值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python获取字典键对应的值文章都会有所收获,下面我们一起来看看吧。当知道字典的键时:unit_r...
    99+
    2023-06-30
  • javascript的集合类型有哪些及怎么用
    这篇文章主要介绍了javascript的集合类型有哪些及怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript的集合类型有哪些及怎么用文章都会有所收获,下面我...
    99+
    2022-10-19
  • javaScript之怎么使用Dom获取集合元素对象
    本篇内容介绍了“javaScript之怎么使用Dom获取集合元素对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2022-10-19
  • JavaScript ES的let与const关键字怎么使用
    这篇文章主要讲解了“JavaScript ES的let与const关键字怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript ES的let与cons...
    99+
    2023-06-21
  • 利用Java怎么获取集合中相同与不同的元素
    利用Java怎么获取集合中相同与不同的元素?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。语法 removeAll(Collection<> c)c:包含从列表中移除...
    99+
    2023-05-30
    java
  • Android应用中怎么利用WebView与Javascript进行交互
    Android应用中怎么利用WebView与Javascript进行交互?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android中可以使用WebView加载网页,同时And...
    99+
    2023-05-31
    android webview javascript
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作