es6 set和map_数据结构什么叫度

es6 set和map_数据结构什么叫度Set和Map的区别1.Map保存键值对,任何值都可以作为键值的值。2.Set保存的是类数组数据,是值的集合。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

参考1:https://www.cnblogs.com/lilife/p/13797853.html
参考2:https://es6.ruanyifeng.com/#docs/set-map
在这里插入图片描述

set 与 map 的数据结构

Set含义和基本用法

新数据结构Set。类似于数组,但是成员的值都是唯一的。所以可以用于数组去重。

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) { 
   
  console.log(i);
}
// 2 3 5 4

两个空对象 所代表的内存地址是不一样的 所以可以看成两个值

let set = new Set();

set.add({ 
   });
set.size // 1

set.add({ 
   });
set.size // 2
实例操作方法
Set.prototype.constructor:构造函数,默认就是Set函数。
Set.prototype.size:返回Set实例的成员总数。
Set.prototype.add(value):添加某个值,返回 Set 结构本身。
Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
Set.prototype.clear():清除所有成员,没有返回值。
s.add(1).add(2).add(2);
// 注意2被加入了两次

s.size // 2

s.has(1) // true
s.has(2) // true
s.has(3) // false

s.delete(2);
s.has(2) // false

Map含义和基本用法

JavaScript对象object本质上是键值对的集合,Hash结构。

缺陷是只能使用字符串作为键。

而map结构优化了这个缺陷,它提供了值-值对的形式,让键名不再局限于字符串,是一种更完整的Hash结构实现

Map

可以接受一个数组作为参数,或者任何具有Iterator接口且每个成员都是一个双元素数组的数据结构都可以当作Map的构造函数的参数。

//set对象和map对象都可以以构造函数的形式生成一个新的map结构
const map =new Map()
const map =new Set()
//数组作为参数
const map =new Map([['name','rowland'],['type','1']])
实例的属性和操作方法
Map.prototype.constructor:构造函数,默认就是Map函数。
Map.prototype.size:返回Map实例的成员总数。
Map.prototype.set(key, value):添加某个值,返回 Map结构本身。
Map.prototype.get(key):get方法读取key对应的键值,如果找不到key,返回undefined。 
Map.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
Map.prototype.has(value):返回一个布尔值,表示该值是否为Map的成员。
Map.prototype.clear():清除所有成员,没有返回值。
const map = new Map();
map.set('foo', true);
map.set('bar', false);
map.size // 2
const m = new Map();
m.set('edition', 6)        // 键是字符串
m.set(262, 'standard')     // 键是数值
m.set(undefined, 'nah')    // 键是 undefined
let map = new Map()
.set(1, 'a')
.set(2, 'b')
.set(3, 'c');
const m = new Map();
const hello = function() { 
console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
m.get(hello)  // Hello ES6!
const m = new Map();
m.set('edition', 6);
m.set(262, 'standard');
m.set(undefined, 'nah');
m.has('edition')     // true
m.has('years')       // false
m.has(262)           // true
m.has(undefined)     // true
const m = new Map();
m.set(undefined, 'nah');
m.has(undefined)     // true
m.delete(undefined)
m.has(undefined)       // false
let map = new Map();
map.set('foo', true);
map.set('bar', false);
map.size // 2
map.clear()
map.size // 0

由于map的键值可以是任意值,而对象所表示的内存地址。所以表面上是操作的一个map对象,实际上不是同一个。

const map = new Map()
map.set(['a'],111)
map.get(['a']) //underfined

Map和Set的区别

  1. Map保存键值对,任何值都可以作为键值的值。
  2. Set保存的是类数组数据,是值的集合。
  3. Map有get方法而Set没有get方法
  4. map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196371.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • enumerate方法_enumerate函数的作用

    enumerate方法_enumerate函数的作用python中的获得索引、和值得方法:enumerate这种方式可以获得索引以及对应的值。但是这显得很繁琐。python其实提供了内置的enumerate函数可以同时获得索引和值,可以这样实现:forindex,keyinenumerate(sequence):process(index,key)如果你想对sequence中的元素作逆置后处理,可以:forind…

    2022年10月28日
  • unity3d自学教程_3D技巧

    unity3d自学教程_3D技巧0.目录简要介绍基本概念视图菜单坐标系统资源元素脚本交互相机操作 1.简要介绍Unity3D软件是由UnityTechnologies公司提供的综合开发环境,主要面向游戏开发人员、虚拟现实设计师等,可用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型的多媒体内容,并支持这些内容在Windows、iOS、Android等多种平台的发布,功能非常强大。Unity3D

  • CentOS7安装Oracle11G完整版图文教程

    CentOS7安装Oracle11G完整版图文教程系统环境:CentOSLinuxrelease7.4.1708(Core)Oracle版本:OracleDatabase11gR2注意事项:安装的过程可能遇到假死现象,直接回车即可如果遇到中文乱码:新建一个目录,上传字体包zysong.ttf到新建的目录,命令如下:#mkdir–p/usr/share/fonts/zh_CN/TrueType#cd/usr…

  • recv、recvfrom[通俗易懂]

    recv、recvfrom[通俗易懂]1、recvfrom()接收一个数据报并保存源地址。(这里是windows中的头文件,Linux的用法在下面的那个实例)头文件:#include  #includeintrecvfrom(ints,void*buf,intlen,unsignedintflags,structsockaddr*from,int*fromlen);s:标

  • 第四章 :springBoot自动配置原理,加载过程

    第四章 :springBoot自动配置原理,加载过程第四章 :springBoot自动配置原理,加载过程

  • ip addr命令详解_c++中add是什么意思

    ip addr命令详解_c++中add是什么意思OverviewTheipcommandisaLinuxnet-toolforsystemandnetworkadministators.TheipcommandreplacesoldgoodandnowdeprecatedifconfigcommandonmodernLinuxdistributions.用法ip[options]OBJECTCOMMANDipaddr#查看ipethomeansEthernet,wl..

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号