返回顶部
首页 > 资讯 > 前端开发 > html >如何使用Set和Map存储数据
  • 659
分享到

如何使用Set和Map存储数据

2024-04-02 19:04:59 659人浏览 薄情痞子
摘要

这篇文章主要讲解了“如何使用Set和Map存储数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Set和Map存储数据”吧!许多年来,程序员们一直使

这篇文章主要讲解了“如何使用Set和Map存储数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Set和Map存储数据”吧!

许多年来,程序员们一直使用Object和Array来存储数据,这种趋势不仅仅局限于javascript。除了这两个选项外,没有其他选择来存储多个值和处理数据结构。然而,在使用Object和Array时有几个限制,例如:

  • Array可以存储重复的元素。

  • 没有像Array那样找到Object长度的方法。

  • 只有字符串可以存储在Object中,不记插入顺序。

  • 开发人员必须根据用例选择数组或对象。

  • 像Lodash这样的第三方库被用来增强数组的功能。

随着2015年es6的发布,情况开始好转。ES6引入了对Map和Set的支持,旨在克服上述限制。

如何使用Set和Map存储数据

什么是Set和Map?

如前所述,这两个功能都是在JavaScript的ES6版本中引入的。Set是唯一元素的有序集合。“唯一元素”是最重要的,因为它意味着一个Set中不能存储重复的元素。但是它没有键-值对系统。

Map是Array和Object数据结构的组合。它像Object一样是键-值对的Set,但它也记住插入格式,并具有length(.size)属性。

Set的声明和初始化:一个集合可以像这样初始化。

const set = new Set();

const set = new Set();

· 从Set中添加和删除元素:你可以使用.add()方法轻松地将元素插入到集合中。

const set = new Set();set.add('John');set.add('Martha')set.add('Bryan');set.add('John');//set = {'John','Martha','Bryan'}

JavaScript中的Set借用了很多数学集合的属性,并且只包含唯一的元素。删除元素也非常简单,使用.delete()方法删除单个元素,或使用.clear()方法删除所有元素。

set.add('John');set.add('Martha')set.add('Bryan');set.delete('Martha')//set= {'John','Bryan'}set.clear(); // removes all the element

· Set的大小:使用.size,你可以很容易地找到有用的Set的大小。

set.add('a')set.add('b');set.add('c');console.log(set.size) // => 3

· 访问Set中的元素:Set在尝试记录或访问其值时的方式不同。你可以记录数组并查看元素,但这不适用于Set。

var arr=[1,2,3];const set = new Set(arr);console.log(set) // => [objectSet]console.log(arr) // => (3) [1,2,3]

为了访问Set,我们需要一个SetIterator()来获取所有的值。JavaScript提供了一个属性.values()来获取一个迭代器,然后我们可以将该迭代器与循环结合使用获取所有的值。如以下代码片段演示:

var arr=[1,2,3];const set = new Set(arr);variterator=set.values()console.log(iterator.next().value) //1

检索所有元素更简单的方法是使用.forEach(),如下所示:

var arr=[1,2,3];const set = new Set(arr);set.forEach(v=>console.log(v))

输出:

1 2 3

此外,你可以使用.has()方法检查是否存在某个值,如果找到该元素,该方法将返回true。

var arr=[1,2,3];const set = new Set(arr);console.log(set.has(1)); // true

值得一提的是,尽管Set不支持键-值对元素,但keys()和entries()等方法对Set是可用的。

Set vs Array

Set和Array倾向于执行和处理相同的操作,但存在一些差异。最大的区别是Set不能像Array那样有重复项,而Set提供了一种更简单的方法来删除项。此外,Set的元素在插入顺序上是可迭代的。

与数学集合一样,JavaScript中的集合也可以用于执行uNIOn和intersection等操作,这些操作可以在合并数据或在两个Set中寻找公共元素时使用。

初始化和声明Map:

与Set类似,Map也可以用同样的方式声明。

const map = new Map();

从Map中添加和删除元素:Map支持类似Object的键值对。因此,在增加价值的同时,我们也需要提供一个密钥。这和我们在Set中看到的不一样。

const map = new Map();map.set('Name', 'iPhone'); // map.set(key,value)fORMatmap.set('Brand', 'Apple');map.set('Price', '$1000');

要从Map中删除一个值,我们可以简单地将键传递给.delete()属性。

const map = new Map();map.set('Name', 'iPhone'); map.set('Brand','Apple');map.set('Price', '$1000');map.delete('Price'); //removes the elementwith key 'Price'

与Set类似,可以使用.clear()删除所有元素。

map.clear() // removes all the element

Map的大小:使用.size可以很容易地检索Map的大小(长度)。

const map = new Map();map.set('Name', 'iPhone');map.set('Brand','Apple');map.set('Price', '$1000');console.log(map.size)//=> 3

访问Map中的元素:Map为我们提供了一个.get()方法,通过将键作为参数传递到方法中来快速获取值。

const map = new Map();map.set('Name', 'iPhone');map.set('Brand','Apple');map.set('Price', '$1000');console.log(map.get('Name'));//iPhoneconsole.log(map.get('Brand')); // Apple

但是如果你只想要键、值,或者键和值都想要,该怎么办呢?Map有.keys(),.values()和.entries()分别实现相同的功能。使用上面代码中的相同Map:

console.log(map.keys()); // iterator {'Name','Brand',Price'}console.log(map.values()); // iterator {'iPhone','Apple','$1000'}console.log(map.entries()); //iterator {'Name':'iPhone','Brand':'Apple',Price':'$1000'}

Map的迭代也非常简单:

//with for-each map.forEach((value, key) => {    console.log(`${key} is ${value} yearsold!`); });   // with for-of for(const [key, value] of map) {   console.log(`${key} : ${value}`); }

此外,你可以使用.has()属性并传递键轻松地检查元素是否存在。

var map = new Map(); map.set('age',19);console.log(map.has('age')) // true since 'age' key ispresent

如果你决定将object转换为map,JavaScript已经搞定了。我们之前使用.entries()来获取所有键-值对,但这次我们将使用针对Object的方法。

const myObject= {   'Age': '25',   'Gender': 'Male',   'Nationality': 'Australian' };   const myMap = new Map(Object.entries(myObject)); //object to mapconstanotherObject = Object.fromEntries(myMap) // map to object

你可以轻松地将map转换为object,如上所示。要将Map转换为Array,可以使用array .from(myMap)。

Map vs Array &Objects

Map似乎解决了Array和Object的许多缺点,比如它能够处理更复杂的操作。Map就像是Array和Object的混合体。它有一个类似array的size属性,可以以键-值对格式存储元素。除此之外,它还提供了.has()之类的方法来检查元素是否存在,这可以节省大量时间。

而且,它不要求键必须是字符串类型。你甚至可以使用一个对象作为键来帮助你编写更好的代码。

虽然Array和Object已经成为存储集合和键-值对元素的事实上的标准,但通过引入Map和Set,你可以为代码提供一种有趣的方法。Set和Map是JavaScript提供的用于存储复杂数据结构的新标准。

此外,使用这些数据结构还消除了使用第三方库(如Lodash)的需要,因为这些新的数据结构默认提供了.has()和.delete()等方法。

感谢各位的阅读,以上就是“如何使用Set和Map存储数据”的内容了,经过本文的学习后,相信大家对如何使用Set和Map存储数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何使用Set和Map存储数据

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

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

猜你喜欢
  • 如何使用Set和Map存储数据
    这篇文章主要讲解了“如何使用Set和Map存储数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Set和Map存储数据”吧!许多年来,程序员们一直使...
    99+
    2024-04-02
  • C++中map和set如何使用
    这篇文章主要介绍了C++中map和set如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++中map和set如何使用文章都会有所收获,下面我们一起来看看吧。一、set1.1 set的介绍首先要知道set...
    99+
    2023-07-05
  • 【数据结构】 Map和Set详解
    文章目录 🍀Map与Set的概念及场景🌳Map与Set模型介绍🎨Map 的使用📌Map说明📌Map.Entry ...
    99+
    2023-10-11
    数据结构 set Map 哈希 java
  • JavaScript如何使用localStorage存储数据
    本篇内容介绍了“JavaScript如何使用localStorage存储数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • 如何使用ASP、大数据、Laravel、存储来优化企业的数据处理和存储?
    随着企业数据量的不断增加,如何优化数据处理和存储已经成为了企业管理的重要问题。本文将介绍如何使用ASP、大数据、Laravel和存储来解决这一问题。 ASP是一种非常流行的网络应用程序开发技术,它可以帮助企业快速开发出高效稳定的网络应用程...
    99+
    2023-11-12
    大数据 laravel 存储
  • 【Java 数据结构】Map和Set的介绍
    目录 1、Map 和 Set 的概念 2、模型 3、Map 的学习 3.1 关于 Map.Entry 3.2 Map 的常用方法 4、Set 的常用方法  5、 Map 和 Set 的注意点 1、Map 和 Set 的概念 Java...
    99+
    2023-09-11
    数据结构
  • 如何在 Go 中使用数组存储和打包数据?
    Go 是一种强类型的编程语言,它提供了多种数据类型,其中数组是一种非常常用的数据类型。在 Go 中使用数组来存储和打包数据是一种非常常见的操作。在本文中,我们将介绍如何在 Go 中使用数组来存储和打包数据。 什么是数组? 数组是一种存储固定...
    99+
    2023-07-01
    存储 数组 打包
  • k8s数据存储之Volume如何使用
    这篇文章主要讲解了“k8s数据存储之Volume如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“k8s数据存储之Volume如何使用”吧!一、什么是Volume通过之前学习了解到,k8...
    99+
    2023-07-05
  • PHP中如何使用NoSQL数据库来存储和检索数据?
    php 中使用 nosql 数据库存储和检索数据:php 提供 mongodb、redis、couchdb 等库与 nosql 数据库交互。使用 mongodb 存储数据,需创建 mon...
    99+
    2024-05-06
    redis mongodb 排列
  • vue如何使用cookie、localStorage和sessionStorage进行储存数据
    目录一、cookie的使用 1. 首先加载模块2. 在使用cookie的页面上进行引入3. 使用方法二、localStorage的使用1. 储存2. 获取3. 删除4. l...
    99+
    2022-11-13
    vue使用cookie vue使用localStorage vue使用sessionStorage vue储存数据
  • ES6中如何使用Map与Set集合
    本篇内容主要讲解“ES6中如何使用Map与Set集合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6中如何使用Map与Set集合”吧!集合的概念以及和数组的区别其实数组也是集合, 只不过数组...
    99+
    2023-06-17
  • 如何在PHP中使用数据存储函数
    数据存储函数在PHP中扮演着极为重要的角色。PHP中有多种数据存储函数,包括文件操作函数、数据库操作函数等等。本篇文章将重点探讨如何在PHP中使用数据存储函数。一、文件操作函数fopen()函数:打开文件并返回文件指针。语法如下:resou...
    99+
    2023-05-18
    函数 PHP 数据存储
  • 如何在Android中使用SQLite存储数据
    这篇文章给大家介绍如何在Android中使用SQLite存储数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 安装一个SQLiteDeveloper,这个用来打开android生成的数据库。软件随便搜索就能找到,后面...
    99+
    2023-05-30
    android sqlite
  • 如何使用二维码在Go和Django中存储数据?
    二维码作为一种快速传递信息的工具,被广泛应用于各个领域。除了传递信息,二维码还可以用于存储数据。本文将介绍如何使用Go和Django两种编程语言,实现将数据存储到二维码中的功能。 一、Go语言 Go语言是一种由Google开发的编程语言,...
    99+
    2023-10-03
    django 二维码 存储
  • Java集合框架中如何掌握Map和Set 的使用
    这篇文章将为大家详细讲解有关Java集合框架中如何掌握Map和Set 的使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 搜索1.1 场景引入在学习编程时,我们常见的搜索方式...
    99+
    2023-06-22
  • sqlserver使用declare和set变量创建存储过程
    创建存储过程时,可以使用DECLARE和SET关键字来创建和设置变量。DECLARE关键字用于声明一个变量,并指定它的数据类型。例如...
    99+
    2023-09-16
    sqlserver
  • ASP 函数和 Spring 结合使用,如何实现数据的存储?
    在当今数字化的时代,数据存储变得越来越重要。ASP 函数和 Spring 是两个非常流行的工具,它们可以协同工作来实现数据的存储。在本文中,我们将探讨如何使用 ASP 函数和 Spring 来实现数据存储。 ASP 函数是一种服务器端脚本...
    99+
    2023-10-06
    函数 spring 存储
  • 如何使用 ASP 函数和 Spring 实现高效的数据存储?
    ASP 和 Spring 是两个常用的开发框架,它们在数据存储方面都具有优势。本文将介绍如何使用 ASP 函数和 Spring 框架来实现高效的数据存储。 一、ASP 函数 ASP 是一种由微软推出的服务器端脚本语言,它提供了丰富的内置函数...
    99+
    2023-10-06
    函数 spring 存储
  • mysql如何存储数据
    MySQL可以使用表来存储数据,表由行和列组成。每一行表示一个记录,每一列表示一个字段。在创建表时,需要指定表的名称和字段的名称、类型以及其他属性。以下是一个创建表和存储数据的示例:1. 创建表:```sqlCREATE TABLE u...
    99+
    2023-08-11
    mysql
  • Java如何使用Set接口存储没有重复元素的数组
    目录Set接口HashSet集合Set接口         Set接口和List接口一样,继承Collection接口,Set接口中元素无序,...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作