js(JavaScript)数据结构之字典

什么是数据结构?

下面是维基百科的解释:

数据结构是计算机存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。

我们每天的编码中都会用到数据结构,下面是常见的数据结构:

  • 数组(Array)
  • 栈(Stack)
  • 队列(Queue)
  • 链表(Linked List)
  • 散列表(Hash)
  • 字典
  • 树(Tree)
  • 图(Graph)
  • 堆(Heap)

字典

字典是一种存储键-值对数据的数据结构,可以通过唯一的键来访问对应的值。这种数据结构可以在不需要使用数组的情况下,快速地查找、插入和删除数据。

在 JavaScript 中,对象就是一种字典类型的数据结构,通过给对象设置属性(key)和属性值(value),就可以实现字典的功能。可以使用字典类来封装这种实现字典功能的对象,以便更方便地使用和管理。例如,可以使用字典类来存储一组学生的姓名和成绩信息,通过学生的姓名来查找对应的成绩。

以下是一个使用字典类存储学生信息的案例 HTML/JS 效果,其中使用了一个自己实现的字典类,并使用了一些基本的字典操作:
请添加图片描述

HTML代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript字典示例-学习信息</title>
</head>
<body><input type="text" placeholder="输入名字" id="nameInput"><input type="text" placeholder="输入成绩" id="scoreInput"><button onclick="addStudent()">添加学生</button><br><br><input type="text" placeholder="输入要搜索的名字" id="searchInput"><button onclick="searchStudent()">搜索学生</button><br><br><label for="result">结果: </label><span id="result"></span><script src="dictionary.js"></script>
</body>
</html>

JavaScript 代码:

// 自定义字典类
function Dictionary() {this.dataStore = {};this.add = function (key, value) {this.dataStore[key] = value;};this.find = function (key) {return this.dataStore[key];};this.remove = function (key) {delete this.dataStore[key];};
}// 创建一个字典实例用于存储学生信息
var studentDict = new Dictionary();// 根据输入添加学生信息
function addStudent() {var name = document.getElementById("nameInput").value;var score = document.getElementById("scoreInput").value;studentDict.add(name, score);console.log(studentDict.dataStore);
}// 根据输入查找学生的成绩
function searchStudent() {var name = document.getElementById("searchInput").value;var score = studentDict.find(name);if (score !== undefined) {document.getElementById("result").textContent = score;} else {document.getElementById("result").textContent = "没有找到相关数据";}
}

上述代码中,通过一个自定义的字典类 Dictionary 来存储学生信息,其中字典的键是学生的姓名,值是学生的成绩。

在 HTML 中,可以通过输入框和按钮来添加学生,并通过另一个输入框和按钮来查找学生的成绩。在 JS 的实现中,添加学生和查找学生都是通过字典的 add() 和 find() 方法实现的。

当添加学生时,会将学生的姓名作为键,学生的成绩作为值,添加到字典中。当查找学生时,会根据输入的姓名在字典中查找对应的成绩,并在页面上进行展示。

持续学习总结记录中,回顾一下上面的内容:
字典是一种存储键-值对数据的数据结构,可以通过唯一的键来访问对应的值。这种数据结构可以在不需要使用数组的情况下,快速地查找、插入和删除数据。

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

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

相关文章

K8S的dashboard使用账号密码登录

原文网址&#xff1a;K8S的dashboard使用账号密码登录-CSDN博客 简介 本文介绍K8S的dashboard使用账号密码登录的方法。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题&#xff0c;吊打面试官&…

C语言中的赋值运算、比较运算和逻辑运算详解

在C语言中&#xff0c;赋值运算、比较运算和逻辑运算是常用的操作符&#xff0c;用于进行变量赋值、条件判断和逻辑组合。本文将详细介绍这三种运算符的用法和示例。 1. 赋值运算符 赋值运算符使用等号&#xff08;&#xff09;&#xff0c;用于将右侧的值赋给左侧的变量。C语…

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单&#xff0c;供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI&#xff0c;配置更加灵活&#xff0c;所…

使用知行之桥EDI系统的HTTP签名身份验证

本文简要概述了如何在知行之桥EDI系统中使用 HTTP 签名身份验证&#xff0c;并将使用 CyberSource 作为该集成的示例。 API 概述 API 是”应用编程接口”的缩写。这听起来可能很复杂&#xff0c;但它的真正含义是一种允许两个不同实体相互通信的软件。自开发以来&#xff0c;…

php内置函数-文件包含的函数

目录 1.include 2.require 3.include_once 4. require_once 1.include 可以将别的文件直接引用过来&#xff08;被引用的文件含有打印代码的话&#xff0c;会直接打印&#xff09;&#xff0c;如果失败了&#xff0c;会返回一条警告&#xff0c;文件会继续执行下去&#…

Skywalking UI页面中操作的各种实用功能汇总

刚刚接触skywalking不久&#xff0c;在这里总结一下在UI页面中操作的各种实用功能&#xff0c;随着使用的不断深入&#xff0c;我也会对文章进行持续补充。 本文skywalking 的ui入口是官方demo &#xff0c;版本是10.0.0-SNAPSHOT-593bd05 http://demo.skywalking.apache.org…

HTML+JS+CSS移动端购物车选购界面

代码打包资源下载&#xff1a;【免费】HTMLJSCSS移动端购物车选购界面资源-CSDN文库 关键部分说明&#xff1a; UIGoods 类&#xff1a; 构造函数&#xff1a; 创建 UIGoods 实例时&#xff0c;传入商品数据 g&#xff0c;初始化商品的数据和选择数量。getTotalPrice() 方法…

往数组添加对象的方法

在JavaScript中&#xff0c;有多种方法可以将对象添加到数组中。以下是其中一些常用的方法&#xff1a; push()方法&#xff1a;使用push()方法向数组末尾添加一个或多个对象。 var arr []; arr.push(obj1); arr.push(obj2);2.unshift()方法&#xff1a;使用unshift()方法向…

网络安全B模块(笔记详解)- 隐藏信息探索

隐藏信息探索 1.访问服务器的FTP服务,下载图片QR,从图片中获取flag,并将flag提交; ​ 通过windows电脑自带的图片编辑工具画图将打乱的二维码分割成四个部分,然后将四个部分通过旋转、移动拼接成正确的二维码 ​ 使用二维码扫描工具CQR.exe扫描该二维码 ​ 获得一串…

性能分析与调优: Linux 磁盘I/O 观测工具

目录 一、实验 1.环境 2.iostat 3.sar 4.pidstat 5.perf 6. biolatency 7. biosnoop 8.iotop、biotop 9.blktrace 10.bpftrace 11.smartctl 二、问题 1.如何查看PSI数据 2.iotop如何安装 3.smartctl如何使用 一、实验 1.环境 &#xff08;1&#xff09;主机 …

基于Docker官方php:7.1.33-fpm镜像构建支持67个常见模组的php7.1.33镜像

实践说明&#xff1a;基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2)&#xff0c;所构建的php7.1.33镜像应用于RHEL7-9(如AlmaLinux9.1)&#xff0c;但因为docker的特性&#xff0c;适用场景是不限于此的。 文档形成时期&#xff1a;2017-2023年 因系统或软件版本不同&am…

Vitest 单元测试

一、自动化测试&#xff08;TDD&#xff09;的一些概念&#xff1a; 自动化测试&#xff08;TDD&#xff09;概念&#xff1a; 自动化测试是指 使用独立于待测软件的其他软件或程序来自动执行测试&#xff0c;比较实际结果与预期 并生成测试报告这一过程。在测试流程已经确定…

CentOS安装k8s单机/集群及一些命令

目录 前言 1. 安装docker 2. 安装要求 3.准备网络&#xff08;如果只装单机版可跳过此部&#xff09; 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化&#xff0c;只在master执行&#xff0c;子节点不要执行 5.3.1 一些…

npm报错error:03000086:digital envelope routines::initialization error

1.可能是因为node版本过高&#xff0c;与现在的项目不符合 这是降低node版本的命令&#xff0c;然后重新运行 npm install npm8.1.2 -g 2.改下这个package.json "dev": "SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve",也…

编码器与解码器LLM全解析:掌握NLP核心技术的关键!

让我们深入了解&#xff1a;基于编码器和基于解码器的模型有什么区别&#xff1f; 编码器与解码器风格的Transformer 从根本上说&#xff0c;编码器和解码器风格的架构都使用相同的自注意力层来编码词汇标记。然而&#xff0c;主要区别在于编码器旨在学习可以用于各种预测建模…

1、HarmonyOS简介

一、HarmonyOS HarmonyOS全场景分布式智慧操作系统&#xff0c;将逐步覆盖“18N”全场景终端设备 1、“1”代表智能手机 2、“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机 3、“N”代表IoT生态产品 二、对于消费者&#xff1a; HarmonyOS用一个“统一…

【Android开发】不同Activity之间的数据回传实例(一)摘桃子游戏

一、功能介绍 该项目实现的功能主要有&#xff1a; 在首页显示一个按钮点击该按钮跳转到桃园页面在桃园页面&#xff0c;点击桃子会弹窗显示摘到几个桃子&#xff0c;同时被点击桃子消失&#xff0c;总桃子数1点击退出桃园会返回首页&#xff0c;首页桃子数会根据点击的桃子数…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)四

第三部分、栈(Stack)和队列(Queue)详解 栈和队列&#xff0c;严格意义上来说&#xff0c;也属于线性表&#xff0c;因为它们也都用于存储逻辑关系为 "一对一" 的数据&#xff0c;但由于它们比较特殊&#xff0c;因此将其单独作为一章&#xff0c;做重点讲解。 使用栈…

1.UnityProfiler性能分析提升性能

一 Stats重要参数详解 1.main thread 主线程 业务逻辑都在这里&#xff0c;我们调用Unity API都在这里&#xff1b;例如设置transform位置&#xff0c;main thread里面处理 2.render thread&#xff0c;渲染线程&#xff0c;负责渲染图像、执行渲染循环、处理GPU命令、帧同步。…

zabbix和prometheus怎么选?

简单粗暴的回答&#xff0c;不搞弯弯绕&#xff01; zabbix和prometheus对比 发行时间开发语言性能社区支持容器支持企业使用部署难度Prometheus2016go支持万为单位相对不如zabbix&#xff0c;人数与日俱增。不仅支持swarm原生集群,还支持Kubernetes容器集群&#xff0c;是目前…