ES6 Map和Set

ES6系列----Set和Map数据结构对比 一、Set和Map数据结构定义区别 Set数据结构 Map数据结构 定义 Set类似于数组,但是成员的值都是唯一的,没有重复。使用new Set()创建Set实例 Map类似于对象,但是键的范围不限于字符串,各种类型的值都可以作为键值。使用new Map()创建Map实例 二、Set和Map操作方法的区别 Set数据结构 Map数据结构 ... 阅读详情

1.Map

ES6中提供了Map数据结构,是键值对的集合

  • 方法
方法描述
clear()移除Map对象的所有键/值对
delete(key)移除指定的元素
get(key)返回映射中的指定元素
set(value,value)添加一个新建元素到映射
has(key)判断是否存在指定元素,返回布尔值
size返回元素数量
  • 示例
let map = new Map();
map.set('name','amy acker');
map.set(1,99);

console.log(map.size); //2
console.log(map.get('name')); //amy acker
console.log(map.has('name')); //true
console.log(map.delete('name')); //true
console.log(map.has('name'));  //false
console.log(map.size);	//1
map.clear();
console.log(map.size);	//0

2.Set

ES6中提供了Set数据容器,是个能够存储无重复值的有序列表。

  • 方法
方法描述
clear()移除Set对象,清空所有元素
delete(value)移除指定的元素,返回布尔值
add(value)添加元素,返回值是实例本身
has(value)判断是否存在指定元素,返回布尔值
size返回元素数量
  • 示例
let set = new Set([1,2,2,3,4]);
console.log(set);	//1,2,3,4
set.add(3);
set.add(5);
console.log(set);	//1,2,3,4,5

console.log(set.size); //5
console.log(set.has(1));	//true
console.log(set.delete(1));	//true
console.log(set.has(1));	//false
console.log(set.size);	//4
set.clear();	
console.log(set.size);	//0

  • 注意:
//下面代码看起来是同一个键,实际上这两个值的内存地址是不一样的
map.set([], 1);
console.log(map.get([])); //undefined

//同理
set.add([]);
set.add([]);
console.log(set.size); //2

let arr = [];
set.add(arr);
set.add(arr);
console.log(set.size); //1

OctoMag: An Electromagnetic System for 5-DOF Wireless Micromanipulation 电磁线圈组驱动经典系统,可以作为参考。 OctoMag: 用于5自由度无线微操作的一个电磁铁系统 OctoMag: An Electromagnetic System for 5-DOF Wireless Micromanipulation [1] Paper Link Authors: J. J. Abbott, etc. 2010, TRO IEEE Transactions on Robot... 阅读详情

相关推荐

大厂嵌入式面试常考八股文及算法

1.指向已被释放或无效的内存地址的指针是野指针。互斥锁是一种用于线程同步的机制,用于确保同一时间只有一个线程访问共享资源。多态是面向对象编程中的一种特性,它允许以一种统一的方式处理不同类型的对象,通过相同的接口可以表现出不同的行为。大小端(Endian)指的是在计算机存储和处理多字节数据时,字节的存储顺序。大端序(Big Endian):高位字节存储在低地址,低位字节存储在高地址。类似于将数字的高位放在左边,低位放在右边的表示方式。例如整数值0x12345678在内存中按照大端序排列为。

谢谢大家的关注 6155

ES6: Map结构

如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键,比如0和-0就是一个键,布尔值true和字符串true则是两个不同的键。这就解决了同名属性碰撞(clash)的问题,我们扩展别人的库的时候,如果使用对象作为键名,就不用担心自己的属性与原作者的属性同名。上面代码的set和get方法,表面是针对同一个键,但实际上这是两个不同的数组实例,内存地址是不一样的,因此get方法无法读取该键,返回undefined。该数组的成员是一个个表示键值对的数组。

DZQ1223的博客 7598

【老生谈算法】可视化通道流中瞬时涡量场的算法实现与MATLAB源码分析——瞬时涡量场

本文旨在探讨可视化通道流中瞬时涡量场的方法,并通过MATLAB编程实现这一过程。涡量场作为描述流体旋涡强度和方向的重要物理量,对于理解复杂流体运动具有重要意义。本文首先介绍了涡量场的基本概念,随后详细阐述了从测量数据收集到涡量场可视化的完整流程,并给出了相应的MATLAB源码。通过实际运行该源码,我们展示了涡量场的可视化结果,并讨论了其在流动结构识别和动力学行为理解中的应用。关键词: 涡量场;流体运动;MATLAB;可视化;PIV一、引言。

m0_53407570的博客 1125

JavaScript从入门到全栈开发

@教学设计本课程以充分胜任前端项目开发为出发点,460课时满满干货,无论你是零基础还是想升级通通满足!技术栈包括但不限于:JavaScript基本语法+常用APIDOM操作+事件处理+动画ES6新特性+正则表达式JavaScript面向对象开发+设计模式Ajax网络通信与异步编程jQuery框架基础与实战+Bootstrap3快速构建页面NodeJS和NPM的使用SASS语法精讲Gulp自动化打包工具的使用Git版本控制工具的使用PHP语法速成MySQL数据库速成Nginx和Apache服务器的使用第三方数据接口的使用实战电商网站全栈开发@内容特色零基础深入浅出水煮漫谈实战贯穿@差异化never say the best,但有趣、实用、学得会、高大全是桫哥追求的目标(KTV你懂的~)@讲师经历桫哥十年撸码,担任过多家互联网公司和教育机构的前后端主程、项目经理和教学总监,玩过前后端开发、移动开发、游戏开发、区块链,见过猪跑,愿与诸君教学相长,共赴星辰大海! @课程收益扎实的JavaScript内功面向对象开发思维DOM/事件/动画:前端三威胁手到擒来掌握各种前端交互效果制作基于Bootstrap与jQuery快速搭建动态网页走向全栈:JS+PHP+MySQL玩转网络通信与异步编程玩转第三方数据初步具备全栈项目前后端开发能力   @项目效果图项目之一效果如下,当然这远非全部: 

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

关于影响力最大化问题中贪心算法的一些理解

在影响力最大化问题中(Influence Maximization,以下简称IM),贪心算法是最早提出的一种解决方法,并且一直沿用至今。它基于IM问题所具有的单调性(Monotonicity)和子模性(Submodularity)使用一种Hill Climbing策略,不断使用Monte Carlo模拟来寻找在当前情况下的具有最大传播范围的节点,添加至种子集合,得到最终结果,算法伪代码如下所示: 这里算法1其实并没有使用MonteCarlo模拟,而只是使用了贪心的策略...

nianjuan1990的专栏 2852

ES6的Map函数详解

Map对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或一个值Map对象是键值对的集合。Map中的一个键只能出现一次;它在Map的集合中是独一无二的。Map对象在for…of循环在每次迭代后会返回一个形式为的数组返回 Map 对象中的键值对数量。map.set('name','张三')移除 Map 对象中所有的键值对。// 2// 0。

前端工程师 · Vue 生态深耕者,专注多端与工程化 4575

CLCD 中国生命周期基础数据库使用攻略

CLCD 是公共建筑碳排放计算的理想选择,其本地化数据可显著提高计算准确性。

hy行者勇哥的博客 2679

一文搞懂ES6的Map

一文搞懂ES6的Map

zhangjing1019的博客 1万+

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

时间序列预测 | 决策树时间序列预测建模,单步、多步(Python)

天天酷科研的博客 745

网络攻防——kali操作系统基本使用

主要介绍如何搭建kali虚拟机,然后介绍了一个简单的攻击方法,切记,网络恶意攻击属于违法行为

weixin_46560512的博客 2万+

Vue 组件间的通信(1)

父组件向子组件传递数据。:自定义事件。:插槽分发内容,带上标签数据一起传输,主要是父组件想子组件传输。组件间通信规则。

2401_84436058的博客 923

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ES6中的Map和Set详解

ES6中的Map和Set

m0_45093055的博客 4952

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ES6 Set和Map的使用

由上可知,Map的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题,我们扩展别人的库的时候,如果使用对象作为键名,就不用担心自己的属性与原作者的属性同名。Set结构的实例有四个遍历方法,可以用于遍历成员。需要特别注意的是,Map的遍历顺序就是插入顺序。方法,表面是针对同一个键,但实际上这是两个值,内存地址是不一样的,因此。它类似于数组,但是成员的。同理,同样的值的两个实例,在Map结构中被视为两个键。的值是一样的,但是它们在Map结构中被视为两个键。

g841805的博客 1351

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ES6中set和map

一。 set 数据容器 能够存储无重复值数据的有序列表 1. 通过 new set() 方法创建容器 通过add() 方法添加 2. set.size获取存储的数据的数量 例: var set = new Set() set.add(1); set.add('1'); console.log(set) console.log(set.size) 3. Set内部使用Obj...

weixin_39458031的博客 2036

ES6之Set和Map

目录一、Set1. Set对象的构造2. Set的操作方法3. Set的遍历方法二、WeakSet三、Map1. Map的基本原理2. Map的操作方法3. Map的遍历方法4. Map与其他数据结构的转换(1) Map转为数组(2) 数组转为Map(3) Map转为对象(4) 对象转为Map(5) Map转为JSON(6) JSON转为Map四、WeakMap 一、Set Set是ES6新增的一...

夕山雨的博客 1219

es6之Set 和 Map对比

一.Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 1.Set 实例的属性和方法: Set 结构的实例有以下属性。 Set.prototype.constructor:构造函数,默认就是Set函数。 Set.prototype.size:返回Set实例的成员总数。 Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。 Set.prototype.add(value):添加某个值,返回 Set 结

HZ___ZH的博客 1518

ES6中map和set用法

一、map Map是一组键值对的结构,具有极快的查找速度 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array; var names = ['Michael', 'Bob', 'Tracy']; var scores = [95, 75, 85]; 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Arr...

有问题可关注公众号:前端研究院 后台输入问题回复 3549

ES6中,Set和Map的区别

在ES6中,Set和Map是两种新的数据结构,它们都有各自的特点和应用场景。

致未来的你。的博客 1332

ES6中Set和Map使用

1. Set // 基本用法 // ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成 Set 数据结构。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2,1,2,4,1,5].forEach(x => s.add(x)); console.log(s) // Set { 2, 3, 5, 4, 1 } // 将set转换成数组 console.log(Array.from(s));

qq_41097495的博客 334

ES6中Map和Set

前言 ◣ ES6是JavaScript语言的新标准,2015年6月正式发布后,迅速推广, 现在大多数浏览器都支持ES6中的大多数特性. 而本文将对ES6新增数据结构集Map和Set进行了解. Map ◣ Map结构是键值的组合,它的key不止限于字符串类型 , key可以为任何类型.[如下所示:] 在这里插入代码片 ...

AKALXH的博客 1706

ES6 中 Map 和 Set

ES6 中 Map 和 Set

weixin_43822185的博客 1058

es6之Set和Map

文章目录SetSet介绍Set属性和方法MapMap介绍Map属性和方法 Set Set介绍 Set(集合)是ES6提供的一种新的数据结构,它类似于数组,但内部元素都是唯一的,没有重复值 Set本身也是一个构造函数,用于生成Set,可以接受数组(或其他具有iterable接口的其他数据结构)作为参数,用来初始化 set的属性和属性值是一回事 set可通过add()方法添加元素 size属性可以返回set的长度 const set = new Set(); [2,2,3,4,5,6,7,1,1].forE

simon的博客 450

ES6中的map和set

JS的数据对象(Obejct),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键(一定程度上对其的使用有限制)比如下面代码上面代码原意是将一个 DOM 节点作为对象data的键,但是由于对象只接受字符串作为键名,所以element被自动转为字符串。“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。(Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

2301_79980806的博客 1382

es6 Set和Map

es6 中 set和map的使用

xu_song的专栏 1708

ES6 Set和Map数据结构用法详解

随着 ES6(ECMAScript 2015)的发布,JS 引入了两种新的数据结构——Set 和 Map,它们为开发者提供了更加强大和灵活的数据存储与管理方式。本文详细介绍了 Set 和 Map 的特性、用法及其实战应用。Set 是一种集合,确保每个元素都是唯一的,非常适合用来去除数组中的重复项。Map 则是一种键值对的集合,支持任意类型的键,并且保留了插入顺序,使得数据的存储和检索更加直观和高效。通过丰富的示例,本文将展示如何创建、添加、删除、遍历这些数据结构,以及如何进行集合运算和类型转换

cx18333的博客 1453
上一篇: 《剑指offer》合并两个排序的链表
下一篇: Java 实现 二叉树
amyacker
博客等级 码龄9年 2粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值