JavaScript 数组 对象 Map Set (映射,集合) 没有字典

news/2025/12/6 21:33:47/文章来源:https://www.cnblogs.com/emanlee/p/19315861

 

在JavaScript中,数组(Array)和对象(Object)是实现数据结构的主要方式。虽然这两个概念经常被提及,但它们在JavaScript中的实现和使用方式略有不同。

数组(Array)

数组是一个有序的数据集合,其中可以存储不同类型的数据(数字、字符串、对象等)。数组的索引是基于数字的,从0开始。

创建数组 

// 创建一个空数组
let emptyArray = [];
// 创建一个包含元素的数组
let fruits = ['Apple', 'Banana', 'Cherry'];

访问数组元素 

console.log(fruits[0]); // 输出: Apple

修改数组元素 

fruits[1] = 'Blueberry';
// 将Banana改为Blueberry

添加元素到数组 

fruits.push('Date');
// 在数组末尾添加元素

对象(Object)

对象是一种复合值,可以存储键值对(key-value pairs)。键通常是字符串(或符号),而值可以是任何类型的数据。

创建对象 

// 创建一个空对象
let emptyObject = {};
// 创建一个包含属性的对象
let person = {
firstName: 'John',
lastName: 'Doe',
age: 30,
greet: function() { console.log('Hello, my name is ' + this.firstName + ' ' + this.lastName); }
};

访问对象属性 

console.log(person.firstName); // 输出: John
console.log(person['lastName']); // 输出: Doe

修改对象属性

person.age = 31;
// 修改age属性值

添加属性到对象 

person.email = 'john.doe@example.com';
// 向对象添加新属性

字典(Map)和集合(Set)作为现代JavaScript特性

从ES6开始,JavaScript引入了MapSet,它们提供了更丰富的数据结构选项。虽然它们不是传统意义上的“字典”和“集合”,但它们在某些情况下可以提供类似的功能。

Map(字典)

Map对象保存键值对。任何值(对象或原始值)都可以作为一个键或一个值。 

let map = new Map();
map.set('key1', 'value1');
// 设置键值对
console.log(map.get('key1'));
// 输出: value1

Set(集合)

Set对象允许你存储任何类型的唯一值,无论是原始值还是对象引用。 

let set = new Set();
set.add('Apple');
// 添加元素到集合中
set.add('Banana');
// 添加另一个元素到集合中,不重复添加相同元素
console.log(set.has('Apple'));
// 输出: true,检查元素是否存在在集合中

总结:数组 vs 对象 vs Map vs Set

  • 数组‌:用于存储有序的、索引的集合。每个元素可以通过索引访问。
  • 对象‌:用于存储键值对。每个键映射到一个值。键通常是字符串。
  • Map‌:类似于对象,但键可以是任何类型,包括函数、对象或任何原始值。它提供了额外的size属性和clear()方法。
  • Set‌:用于存储任何类型的唯一值集合。它不包含键值对,只包含值的集合。它提供了add()delete()has()方法。

 

JavaScript 对象(面向对象的对象) 草稿

https://www.cnblogs.com/emanlee/p/16701371.html

 

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

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

相关文章

舆情处置高效的技术深度解析:Infoseek 字节探索的 AI 闭环架构与实现逻辑

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

FPS的实时处理能力

21.3 FPS(Frames Per Second)的实时处理能力”是指一个系统或模型能够在每秒处理大约21.3帧图像或视频数据。这个指标通常用于衡量计算机视觉模型(如目标检测、分割等)在实时应用中的性能。 21.3 FPS 的意义实时性…

构建个人知识库新选择:深度解析访答本地私有知识库

构建个人知识库新选择:深度解析访答本地私有知识库 为什么需要本地私有知识库 在信息爆炸的时代,有效的知识管理成为个人效率提升的关键。与云端知识库不同,本地私有知识库将数据完全存储在个人设备上,确保了数据的…

数字马力一面-后端开发郑州岗(校招)

📘 数字马力 Java 后端开发一面回忆录 面试时间:2025年12月5日 17:15(周五) 面试时长:约 25 分钟 结果:当天晚上通过一面,但需完成测评题(据传测评未过仍无法进二面)一、自我介绍(开场)石家庄铁道大学 软…

AIShareTxt入门:快速准确高效的为金融决策智能体提供股票实用的技术指标上下文

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

麒麟ARM架构安装redis - show

解压压缩包tar -zxvf redis-5.0.3.tar.gzcd redis-5.0.3makemake PREFIX=/usr/redis-5.0.3 install执行完后会生成bin文件夹cd bin ./redis-server启动后看到如上欢迎页面,但此窗口不能关闭,窗口关闭就认为redis也关…

I know only one topic but I wear glasses in 20s

usually people know some general topics, may know not only one if they are Erudite person. because its the fault of reddit or Facebook

详细介绍:中颖AFE芯片:SH367303、SH367306 和 SH367309

详细介绍:中颖AFE芯片:SH367303、SH367306 和 SH3673092025-12-06 21:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

主动学习如何优化计算机视觉工作流程

本文深入探讨了主动学习在计算机视觉中的应用,通过战略性地选择最具信息量的样本进行标注,能显著减少标注成本、提升模型性能,并详细介绍了其核心原理、不同类型、实现技术、实际案例及未来发展方向。如何运用主动学…

IMX6ULL主频和时钟配置

写在前面: 芯片的主频和一些时钟配置,在启动的时候,通过BootROM 阶段已经进行了初始化,也处于能用的状态,可以直接使能(CCGRx)相应的外设直接进行使用。本文对于主频和时钟的配置是修改BootROM阶段默认的初始化…

英语_阅读_Heroes come in all ages_待读

Heroes come in all ages. 英雄可以来自各个年龄段。 These young people show how small acts of bravery, combined with teamwork, can make a big difference. 这些年轻人展示了勇敢的微小行动与团队合作如何能够带…

云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

收敛至约0.28

“收敛至约0.28”这个表述通常出现在描述模型训练过程中的某个指标(如损失函数值或准确率等)逐渐稳定并接近某个特定值(这里是0.28)的情况。具体含义取决于上下文,以下是一些可能的解释和应用场景: 1. 损失函数收…

qemu如何和宿主机共享文件 - show

1、切换到enp0s1网络 2、ping宿主机ip 3、宿主机设置共享文件夹 4、虚拟机访问宿主机共享文件夹

2025贵州贵阳荣和酒坊采购渠道推荐!百年传承酱香白酒购买平台TOP5榜单发布,品味历史沉淀的醇香佳酿

随着酱香白酒市场的持续升温,具有深厚历史底蕴和独特酿造工艺的品牌备受消费者青睐。荣和酒坊作为中国酱香白酒史上的重要代表,其传承与发展一直是行业关注的焦点。本榜单基于服务体系及市场口碑等维度,结合行业权威…

UE5循环播放蒙太奇

UE5循环播放蒙太奇要在蒙太奇循环中勾选下一段:

冻结预训练层策略为什么冻结

在深度学习中,冻结预训练层策略(Freezing Pre-trained Layers)是一种常见的技术,尤其是在使用预训练模型进行迁移学习(Transfer Learning)时。这种策略的核心思想是将预训练模型的一部分层(通常是早期层)冻结,…

WPF学习之handycontrol

官网:原生控件 | HandyOrg

英语_阅读_School annual sports day_待读

Last month, the students of Shanghai New Star School held their annual sports day. 上个月,上海新星学校的学生们举行了他们的年度运动会。 There were many exciting events, but the most memorable one was t…

完整教程:神经网络—— 学习与感知器

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …