当前位置: 首页 > news >正文

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

 

在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.jsqmd.com/news/64405/

相关文章:

  • 舆情处置高效的技术深度解析:Infoseek 字节探索的 AI 闭环架构与实现逻辑
  • FPS的实时处理能力
  • 构建个人知识库新选择:深度解析访答本地私有知识库
  • 数字马力一面-后端开发郑州岗(校招)
  • AIShareTxt入门:快速准确高效的为金融决策智能体提供股票实用的技术指标上下文
  • 麒麟ARM架构安装redis - show
  • I know only one topic but I wear glasses in 20s
  • 详细介绍:中颖AFE芯片:SH367303、SH367306 和 SH367309
  • 主动学习如何优化计算机视觉工作流程
  • IMX6ULL主频和时钟配置
  • 英语_阅读_Heroes come in all ages_待读
  • 云原生基石的试金石:基于 openEuler 部署 Docker 与 Nginx 的全景实录 - 指南
  • 收敛至约0.28
  • qemu如何和宿主机共享文件 - show
  • 2025贵州贵阳荣和酒坊采购渠道推荐!百年传承酱香白酒购买平台TOP5榜单发布,品味历史沉淀的醇香佳酿
  • UE5循环播放蒙太奇
  • 冻结预训练层策略为什么冻结
  • WPF学习之handycontrol
  • 英语_阅读_School annual sports day_待读
  • 完整教程:神经网络—— 学习与感知器
  • Windows安装银河麒麟ARM版虚拟机 - show
  • 街头徒手健身2臂屈伸
  • Scoop 软件清单与配置信息
  • 智能座舱
  • 测试博文标题 at 2025-12-06T10:00:00
  • 团体设计天梯赛L1题解
  • 2025.12.6博客
  • 完整教程:乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O
  • 数据开发工作内容简要介绍
  • 关于博客后续