JavaScript用map实现Hashmap

news2024/11/27 6:32:05

📝个人主页:爱吃炫迈
💌系列专栏:数据结构与算法
🧑‍💻座右铭:道阻且长,行则将至💗

文章目录


正如我们已经看到的,Map 对象是一个键值对。最初,Map 将为空;里面不会有任何元素。hashmap 中的键可以是字符串或 symbol类型,hashmap 的值可以是任何类型。


要创建 Map,你可以创建它的一个对象并将其存储在一个变量中,在本例中为 hashmap。现在为了在 hashmap 中插入键值对,JavaScript 提供了一个名为 set() 的方法。这个方法有两个参数,第一个是 key,第二个是 value。在我们创建的 hashmap 中,我们将插入四个元素,每个元素都有一个不同类型的值,如整数、数组、字符串和整个函数。下面是演示相同内容的代码。

var hashmap = new Map();

hashmap.set('1', 700);
hashmap.set('2', [1,2,3]);
hashmap.set('3', "This is a string");
hashmap.set('4', ()=>{console.log("Hello World")});

console.log(hashmap);

输出

creating_hashmap


如你所见,我们插入了各种数据类型,包括作为哈希映射值的整个函数。

我们已经创建了一个哈希图;让我们尝试打印哈希图中存在的所有值。它可以在 forEach 循环的帮助下完成。

hashmap.forEach(element => {
    document.write('<br>'+element);
});

现在让我们使用 has() 方法检查哈希图中是否存在键 3。如果键存在于散列图中,我们将使用 set() 方法更改或替换键 ‘3’ 的现有值。

if(hashmap.has('3')){
    hashmap.set('3', "We changed the value...")
}

console.log(hashmap);

输出

update_value_hashmap


最后,要从哈希图中删除元素,你可以使用 delete() 方法并传递要删除的相应键。如果你想一次从哈希图中删除所有元素并将其清空,你可以使用 clear() 方法,如下所示。

// deletes 4th element
hashmap.delete("4");
console.log(hashmap);

// clears entire hashmap
hashmap.clear();
console.log(hashmap);

以下是上述代码的输出:

delete_elements_from_hashmap


💞总结💞

希望我的文章能对你学习map有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/475041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

〖Python网络爬虫实战⑲〗- 数据存储之CSV文件

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付…

第二部分——长难句——第二章——复合句——第一节——名词性从句

首先复合句是什么呢&#xff1f; 多件事一样重要就叫并列句&#xff0c;如果不一样重要就叫并列句。 复合句主句从句 下面我们来看一个例句&#xff1a; 找到从句之后剩下来的不就是主句吗&#xff1f; 一&#xff0c;宾语从句 &#xff08;一&#xff09;宾语从句的含义 一…

字符串中的第一个唯一字符

题目&#xff1a;字符串中的第一个唯一字符 思路一&#xff1a;暴力查找&#xff0c;时间复杂度 思路一&#xff1a;开辟检查重复数组,以空间换时间&#xff0c;时间复杂度 这段代码的作用是在一个字符串 s 中找到第一个不重复&#xff08;只出现一次&#xff09;的字符&#…

kafka和rocketmq区别对比

Kafka和RocketMQ是目前非常流行的分布式消息系统&#xff0c;它们都能够高效地处理海量的消息数据。在本文中&#xff0c;我们将对Kafka和RocketMQ进行技术比较&#xff0c;分析它们在各方面的优缺点&#xff0c;以便读者在选择消息系统时能够做出更加明智的决策。 一、架构设计…

Java-volatile实现详解(从java到汇编)

在Java内存模型一节&#xff0c;除了synchronized外&#xff0c;我们还提到一个常用关键词----volatile&#xff0c;我们说过volatile保证了并发环境的可见性和顺序性&#xff0c;使用volatile修饰的变量&#xff0c;当然值发生改变时&#xff0c;可以同步到其他线程&#xff0…

【python】你的表情包缺不缺?我猜你缺了~来批量获取一波吧~

目录 前言环境使用:模块使用:如何去实现本次案例: <通用模板>代码展示尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 在我们的生活中&#xff0c;总少不了表情包来调剂 少了表情包就会少了很多趣味 今天就来教大家如何批量下载我们的表情包 环…

力扣刷题2023-04-29-1——题目:1431. 拥有最多糖果的孩子

题目&#xff1a; 给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果…

接触Word的编辑保护【简单版】

首先&#xff0c;我们遇到的情况是下图这样的&#xff1a; 点一下停止保护&#xff0c;是下图这样的&#xff1a; 开始解决&#xff1a; 第一种方式&#xff1a;另存为Word Xml 存好了&#xff0c; 打开如下图&#xff08;我用VS打开的&#xff0c;最好找个能够格式化代码的编…

秘密是如何被泄露的?自建文件分享神器HFS

近年来&#xff0c;随着互联网技术的飞速发展&#xff0c;我们对于互联网的依赖也日益增加。利用互联网这种高效便捷的工具&#xff0c;我们可以随时随地进行文件的传输、图片的分享以及与他人的交流。然而&#xff0c;看似安全的聊天窗口&#xff0c;其实背后是庞大的互联网算…

MybatisPlus动态表名

核心代码 mybatisplus的配置 Configuration public class MybatisPlusConfig {// 这里是存储需要动态变化的表&#xff0c;防止乱操作static List<String> tableList() {List<String> tables new ArrayList<>();//表名tables.add("user");return…

Flask框架的学习---01

1.工程搭建&#xff1a; 安装flask: pip3 install flask 终端运行&#xff1a;flask run 绑定IP地址和端口&#xff1a;Flask run -h 127.0.0.1 -p 8083 修改端口号生产环境&#xff1a;set FLASK_ENVproduction开发模式&#xff1a;set FLASK_ENVdevelopment 虽然 flask …

ChatGPT真的有那么牛吗?

ChatGPT真的有那么牛吗&#xff1f;ChatGPT真的有那么牛吗&#xff1f; 作为一款大型语言模型&#xff0c;ChatGPT确实具有很高的自然语言处理和生成能力&#xff0c;可以生成流畅、准确和有逻辑性的语言&#xff0c;而且能够理解和回答广泛的问题。 它是目前最先进和最强大的…

《HelloGitHub》第 85 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …

奇舞周刊第 491 期 初探 Web 客户端追踪技术

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 初探 Web 客户端追踪技术 浏览器的追踪技术是一把双刃剑&#xff0c;它建立了用户个人信息和网站之间的连接&#xff0c;合理地使用能够大大提高用户的体验&#xff0c;但是同时也…

【测试开发】第二节.测开基础篇

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;Java测试开发 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 一、软件测…

盈泰德带你了解产品表面缺陷检测系统

与前几年相比&#xff0c;机器视觉行业在表面检测方面有了很大的突破。检测产品表面的划痕、污渍不再困难&#xff0c;广泛应用于金属、玻璃、手机屏幕、液晶面板等行业的表面检测。 机器视觉检测有以下四种常用的检查和照明方法&#xff1a; 同轴照明、低角度照明、背光照明…

最全最简单scrapy框架搭建(附源码案例)

最近在做项目中,需要网页的大批数据,查询数据是一项体力劳动,原本的我 然而,奋斗了一天的我查到的数据却寥寥无几,后来的我是这样的 作为一个cv工程师,复制粘贴原本是一件很快乐的事情但是它缺给了我无尽的折磨,所以我利用4天时间查询各种资料,翻阅各种视频,终于了解了一个面向…

【五一创作】[论文笔记]图片人群计数CSRNet,Switch-CNN

2018(有代码)_CSRNet (10次) 应用最最广泛的&#xff1a;e, is the most widely used while working with counting problems. 2018_CVPR——CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes https://arxiv.org/abs/1802.100…

[遗传学]近亲繁殖与杂种优势

目录 近交与杂交的遗传学效应 (1) 近交使基因纯和,杂交使基因杂合 近交效应: (2) 近交系数与亲缘系数 (3)运用通径分析方法计算近交系数和亲缘系数 ① 通径与通径链 ② 通径分析的理论及其应用 (4)近交降低群体基因型值的平均值,杂交提高群体均值 (5)近交使群体分化,杂…

mysql卸载及Ubuntu降级mysql并安装MySQL5.7并修改键盘失灵问题及 centos_x86.64安装MySQL5.7及修改密码及设置访问

卸载mysql 可以看centos_x86.64安装MySQL5.7标题的卸载 查看MySQL的依赖项 dpkg --list|grep mysql 卸载 mysql-common sudo apt remove mysql-common 卸载 mysql-server sudo apt autoremove --purge mysql-server 清除残留数据 dpkg -l|grep ^rc|awk ‘{print$2}’|sudo …