ES6知识点整理Map的应用

【ES6系列】详解ES6中的Map map.get(‘name’) //张三注意:如果map中存在相同的键名(比较规则是栈内存中是否一致,只要内存地址不一样,就视为两个键),则后面的赋值会覆盖前面的如果读取一个未知的键,则返回undefined二、实例属性和方法size属性可以返回map的长度。—— 添加或修改键值对,返回值是当前的集合,所以可以采用链式调用。—— 根据key获取—— 是否含有键名key,返回布尔值—— 删除某个—— 清空集合—— 返回键名的遍历器—— 返回键值的遍历器—— 返回键值对的遍历器—— 遍历集合。 阅读详情

Map 数据结构类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“任何—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

初识map

var obj = {
  'name':'Joh',
  qq:'5222',
  'full name':'Johnny'
};

let map = new Map();
map
  .set(obj, 'Hello map')
  .set('haha', 12)
  .set(52, obj)
  .set(NaN, new Set([1,2,3]));

console.log(map);
console.log(map.size); // 4

Map可以连续set,就像Set可以连续add一样,同样有size的api

map 的delete, has方法

var obj = {
  'name':'Joh',
  qq:'5222',
  'full name':'Johnny'
};

var arr = [1,2];

let map = new Map();
// map 可以连续set
map
  .set(obj,'11')
  .set(11,3)
  .set(12,'H')
  .set(arr,'h');

var delRes = map.delete(obj); // map不可以连续 delete
console.log(delRes); // true
var hasBool1 = map.has(11);
console.log(hasBool1); // true
var hasBool2 = map.has(arr);
console.log(hasBool2); // true
console.log(map.size); // 3

NaN在map上的特殊性与clear方法

let map = new Map();
// map 可以连续set
map
  .set(11,3)
  .set(12,'H')
  .set(NaN,'h1')
  .set(NaN,'h2'); // 覆盖前值

console.log(map.get(NaN));  // h2

map.clear();
console.log(map.size); // 0

和set相同,NaN在map上具有唯一性,clear方法会将集合清空

map 的构造函数参数的传递,取值get方法,keys方法,values方法

let map = new Map([
  ['name','Joh'],
  ['age',10]
]);

let name = map.get('name');
let age = map.get('age');
console.log(name); // Joh
console.log(age); // 10

let keys = map.keys();

for(let k of keys) {
  console.log(k); // 分别输出 name 和 age
}

let values = map.values();

for(let v of values) {
  console.log(v); // 分别输出 Joh 和 10
}

map与set的原型属性比较和map使用entries方法获得数据的实体

let map = new Map([
  ['name','Joh'],
  ['age',10]
]);

console.log(Set.prototype[Symbol.iterator] === Set.prototype.values); // true
console.log(Map.prototype[Symbol.iterator] === Map.prototype.values); // false
console.log(Map.prototype[Symbol.iterator] === Map.prototype.entries); // true

let entries = map.entries();

for (let en of entries) {
  console.log(en); // 分别输出 ['name','Joh'] 和 ['age',10]
}

map内forEach方法和对象传递,以及内部this的使用

let map = new Map([
  ['name','Joh'],
  ['age',10]
]);

var me = {
  name:"Joh"
};

map.forEach(function (val, key) {
  console.log(key, val); // 分别输出 name Joh 和 "age" 10
});

console.log('>>>>>');

map.forEach(function (val, key) {
  // console.log(key, val); // 分别输出 name Joh 和 "age" 10
  console.log(this); // {name: "Joh"} 此处的this就是传递进来的对象
}, me);
ES6 ~ ES11整理 持续学习中。。。。。 ES 全称 EcmaScript,是脚本语言的规范,而平时经常编写的 JavaScript,是EcmaScript的一种实现,所以 ES 新特性其实指的就是 JavaScript 的新特性。 一、ESMAScript相关介绍 1.1 什么是ECMA ECMA(European Computer Manufacture Associate)中文名称为欧洲计算机制造协会,这个组织的目标是评估、开发和认可电信和计算机标准。1994年后该组织改名为 Ec... 阅读详情

相关推荐

MATLAB/Simulink与ThingSpeak集成:打通物联网数据与工业算法仿真的闭环

在工业算法开发与控制系统设计中,模型仿真与真实世界数据的脱节是常见的工程挑战。其核心原理在于构建一个双向数据流闭环,将虚拟的仿真模型与物理世界的传感器网络连接起来。这一技术方案的核心价值在于大幅缩短算法迭代周期,实现数据驱动的设计与验证。典型的应用场景包括数字孪生构建、预测性维护和硬件在环(HIL)测试的云端化。通过将MATLAB/Simulink这一强大的模型化设计环境,与ThingSpeak物联网云平台进行深度集成,工程师能够轻松地将实时或历史的物联网数据流直接注入仿真模型作为输入,同时将仿真结果实时回

weixin_34220179的博客 470

ES6中Map类型的基本使用和常见方法

ES6中Map类型的基本使用和属性方法

qq_44482048的博客 1058

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

ES6.4set、map与模块化

【代码】ES6.4set、map与模块化。

weixin_53560514的博客 701

工业级越界行为识别数据集:YOLOv8/v9直接训练的围栏异常检测资源

越界行为识别是智能安防与工业安全中的基础视觉任务,其核心在于对人员、车辆等目标跨越物理边界(如围栏、警戒线、作业禁区)的精准检测与分割。该技术依赖于高质量实例分割标注、归一化坐标格式及场景鲁棒性设计,具备低延迟、高召回、强泛化等工程价值,广泛应用于智慧工地电子围栏、化工厂禁区告警、物流园区越界监控及变电站安全巡检等真实工业场景。本数据集以YOLOv8/v9为基准构建,提供万张实拍+合成图像、像素级Segmentation标注、分层划分与完备元数据,开箱即用,直击工业落地中数据清洗、格式转换与标注不一致等关键

weixin_30080745的博客 320

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...

仙魁XAN 1万+

【es】map方法

1.map 初级用法 <template> <div class="home"> 1111111111111 </div> </template> <script> export default { created(){ console.log(this.mapFun()); }, data(){ return{ word:[1,2,3,4] } }, methods:{ .

jieweiwuwei的博客 834

西门子PLC作为TCP客户端通信:TSEND_C/TRCV_C指令实战与状态机设计

在工业自动化与物联网系统中,TCP/IP通信是实现设备间数据交换的基础协议,其核心在于建立可靠的点对点连接与数据流传输。其工作原理基于客户端-服务器模型,通过三次握手建立连接,确保数据包的顺序与完整性。这项技术的工程价值在于打破了传统工控设备被动响应的局限,为实时数据主动上报、边缘计算集成提供了通用且灵活的解决方案。在工业物联网、设备远程监控、生产数据实时采集等场景中,TCP客户端模式使得PLC能够主动将产线状态、报警信息等关键数据推送至服务器或数据库,实现更及时的数据交互。本文聚焦于西门子S7-1200/

weixin_29194255的博客 365

【ES】笔记-Map介绍与API

ES6提供了Map数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map也实现了iterator接口,所以可以使用【扩展运算符】和【for…

德仔 760

3DE重客户端安装

3DE重客户端安装

m0_48170265的博客 9439

Docker部署Nextcloud私有云:MariaDB、OnlyOffice与HTTPS全栈实践

Nextcloud作为主流开源私有云平台,其稳定部署依赖Docker容器化、MariaDB数据库优化、OnlyOffice在线协作集成及HTTPS安全加固四大核心技术。理解Docker Compose服务健康检查机制与依赖等待原理,可避免因启动时序导致的500/404错误;掌握MariaDB字符集配置与InnoDB参数调优,是保障Nextcloud全文搜索与大文件上传可靠性的底层基础;而OnlyOffice的JWT兼容性控制与Nginx路径重写规则,则直接决定文档协同功能是否可用。在家庭NAS、边缘服务器或

weixin_30328063的博客 515

ES6 Map的创建、遍历、使用及注意

手写map

weixin_51719919的博客 7677

【漏洞复现】永恒之蓝 MS17-010 远程溢出漏洞(CVE-2017-0143)

文章目录声明前言一、漏洞原理简述二、漏洞代码深层解析三、实验步骤四、漏洞补丁总结 声明 本篇文章仅用于技术研究与技术学习,切勿用于非授权下攻击行为,切记! 前言 Windows7 存在 MS17-010 永恒之蓝(远程溢出漏洞) ,该漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码 一、漏洞原理简述 MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理FEA(File Ex

李同學AI安全 9629

前端面试题整理(八)ES6

准备面试的时候做的个人整理,比较基础,难度对标实习一面,校招应该比这难点。 你对ES6了解多少?知道哪些?(必问hhh) Promise(考过) Async/Await ES6中迭代器的使用:Generator函数 es6的继承和es5的继承有什么区别 箭头函数,以及它的this(考过) let暂时性死区(考过) ES6中map遍历的实现原理 Symbol,写一个应用实例,并说出它的其他应用场景 ...

yellowpig1210的专栏 212

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ES6前端面试题整理

ES6前端面试题整理,es5和es6的区别, ES6新增的一些特性,箭头函数,模板字符串,解构赋值,... 展开运算符,修饰器 @,Symbol,Proxy代理,使用箭头函数应注意什么?Set、Map的区别?setTimeout、Promise、Async/Await 的区别,用class 手写一个promise,es6的导入导出模块

LYFlied的博客 7940

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

22个关于ES6的最新面试题汇总整理

作者:StevenLikeWatermelonhttps://juejin.cn/post/6844903734464495623近期在复习ES6,针对ES6新的知识点,以问答形式整理一...

前端达人 8632

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ES6面试、复习干货知识点汇总(全)

近期在复习ES6,针对ES6新的知识点,以问答形式整理一个全面知识和问题汇总。(全干货,适合对ES6有一定理解的同学复习,以及ES6面试。) 一、问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为...

前端码农 2941

ES6 知识点整理

ES6核心知识点摘要 变量声明:let/const具有块级作用域和暂时性死区,const声明常量时引用类型属性可修改。 箭头函数:继承外层this,不可作构造函数,无arguments对象。 模板字符串:反引号支持多行文本和变量嵌入(${x})。 解构赋值:从数组/对象快速提取值,简化数据操作。 异步处理:Promise管理异步状态,async/await以同步写法处理异步。 数据结构:Set自动去重,Map支持任意类型键。 Class与模块化:类语法糖实现继承,import/export拆分代码模块。 高

黄同学的博客 1482

ES6知识点整理

ES6-ES11

VCDA的博客 401

es6知识点整理

es6知识点整理 文章目录es6知识点整理let和const变量的解构赋值模板字符串函数的扩展对象的语法糖set和mapsymbolPromiseasync/awaitclass let和const let 声明变量 不存在变量提升 不能在变量声明语句之前去使用变量 在变量声明前使用变量会报错 暂时性死区 存在暂时性死区,即在变量声明语句之前的区域和声明语句外的块级作用域下是不能使用该变量的 不允许重复声明 在声明变量之后,不能重复声明该变量,只能进行赋值操作 块级作用域 ES6中,

XDE_cat_的博客 807

ES6整理

ES6整理 1. ES6允许按照一定模式从数组和对象中提取值再对变量赋值,称之为解构。这种新模式会映射出正在解构的数据结构,只有那些与模式匹配的数据才会被提取出来。 注:解构数据与构造数据截然相反,不是构造一个新的对象或数组,而是逐个拆分现有的对象或是数组来提取所需要的数据。 2. Map是ES6提供的一种数据字典结构。字典就是用来存储不重复的Hash结构。不同于集合的事字典使用健值对的形式存储数据。 注:JavaScript中的Object本质上是键值对的集合,只能用字符串来做键,这给使用带来了极大的限制

原在路上的博客。 1752

整理ES6中的Set和Map方法

本文参考阮一峰先生的《ECMAScript 6 入门》一书的set和map一章。 1. set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); f

ChauncyWu的博客 2万+

ES6中Map与其他数据结构的互相转换

最近在学习ES6的基础知识,整理了一下Map与其他数据结构相互转换的写法。 Map转为数组的方法 1 2 3 let myMap =newMap([[true,7], [{foo:3}, ['abc']]]); [...myMap] console.log([...myMap]); 数组转为Map的...

gong1422425666的博客 482

es6之map和set整理

①es6做了集合类型的统一,Array,map,set都可以用for…of遍历 ②map类似对象,但是他的key可以是字符串,对象类型。 ③set类似数组,里面的值都是唯一不能重复。 看一下map的输出: let map=new Map() map.set(1,"hello") map.get(1) "hello" let obj={} map.set(obj,{name:"lisi"}) map...

weixin_44494811的博客 238

ES6数组操作:forEach、map,这些年前端面试的那些套路

ES6数组操作:forEach、map、filter、find、every、some、reduce、concat(合并)详细用法。

weixin_58085973的博客 1978
上一篇: ES6知识点整理Set的应用
下一篇: ES6知识点整理Array常用扩展的应用
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值