ES6提供了Set和Map的数据结构。

Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。和java中的Set集合非常相似。

    <script>let set = new Set();set.add(1);set.add(2);set.add(5);set.add(8);set.forEach(value => {console.log(value);})</script>

构造函数:

// Set构造函数可以接收一个数组或空
let set = new Set();
set.add(1);// [1]
// 接收数组
let set2 = new Set([2,3,4,5,5]);// 得到[2,3,4,5]

方法:

set.add(1);// 添加
set.clear();// 清空
set.delete(2);// 删除指定元素
set.has(2); // 判断是否存在
set.forEach(function(){})//遍历元素
set.size; // 元素个数。是属性,不是方法。

map,本质是与Object类似的结构。不同在于,Object强制规定key只能是字符串。而Map结构的key可以是任意对象。

即:

object是 <string,object>集合
map是<object,object>集合

    <script>const map = new Map([['key1','value1'],['key2','value2'],]);map.set("key3", "value3");console.log(map.get("key1"));console.log(map);map.forEach((value, key) => {console.log(key, value);});for(let key of map.keys()){console.log(key);}</script>

构造函数:

// map接收一个数组,数组中的元素是键值对数组
const map = new Map([
['key1','value1'],
['key2','value2'],
])
// 或者接收一个set
const set = new Set([
['key1','value1'],
['key2','value2'],
])
const map2 = new Map(set)
// 或者其它map
const map3 = new Map(map);

方法:

map.set(key, value);// 添加
map.clear();// 清空
map.delete(key);// 删除指定元素
map.has(key); // 判断是否存在
map.forEach(function(key,value){})//遍历元素
map.size; // 元素个数。是属性,不是方法
map.values() //获取value的迭代器
map.keys() //获取key的迭代器
map.entries() //获取entry的迭代器
用法:
for (let key of map.keys()) {
console.log(key);
}
或:
console.log(...map.values()); //通过扩展运算符进行展开

ES6新特性之Set和Map相关推荐

  1. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构

    往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...

  2. html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结

    前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...

  3. 尚硅谷es6新特性笔记

    尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...

  4. lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?

    国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...

  5. ES6新特性----面试

    ES6新特性 关键字 let关键字 const关键字 解构赋值 变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 用途 模板字符串 箭头函数 ...

  6. ES6新特性(部分语法)

    ES6新特性 文章目录 ES6新特性 1.0let关键字 1.1let小案例 1.2const关键字 1.3解构赋值 1.4模板字符串 1.5简化对象写法 1.6箭头函数 1.7箭头函数的案例 1.7 ...

  7. 一文快速掌握 es6+新特性及核心语法

    首先先祝各位节日快乐,好好去体验生活的快乐,在假期最后一天里,祝大家收获满满,同时抓住假期的尾巴,收割实用技能. 接下来我会总结一些工作中常用也比较核心的es6+的语法知识,后面又要慢慢开始工作之旅了 ...

  8. es6新增数组、数组去重、es6新特性

    ES6新增的数组方法 1.forEach forEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第 ...

  9. html5,css3,es6新特性总结

    html5新特性 语义化标签 如:header,footer,nav,dialog 增强型表单 如:date,week,url,time,email,month 视频和音频 audio和video C ...

最新文章

  1. [网络安全提高篇] 一〇八.Powershell和PowerSploit脚本渗透详解 (1)
  2. 提高ASP.net性能的十种方法
  3. Ubuntu apt upgrade后黑屏问题
  4. docker 查看容器_Docker介绍
  5. 契税申报期限_税局正式公告!财产和行为税合并纳税申报!附税种申报要点
  6. swarm 和 k8s_Wildfly Swarm,朝着成熟和一小部分贡献
  7. Qt工作笔记-Linux上字体问题,导致所有文字重叠在一起
  8. spring整合dubbo实现简单分布式接口调用
  9. 【Spring】SpringMVC 初始化 流程
  10. e站host地址_ip地址基础入门知识
  11. rtklib-RINEX文件读取-rinex.c解析(一)
  12. [渝粤教育] 西南科技大学 语言学概论(英语) 在线考试复习资料
  13. 洛谷 P1878 舞蹈课(优先队列 + 双链表)
  14. 工程数学(经常用到的工程数学知识进行整理)
  15. 手机必备四款提高工作效率APP,每一个都是黑科技!
  16. 在IT产品白皮书中遇到的缩略词
  17. :before、:after伪元素的用法 !
  18. python爬取豆瓣电影评论_使用Python抓取豆瓣影评数据的方法
  19. Python每日一练——列表,元组和字典第十一关:del和pop的用法
  20. fme和python-docx结合实现批量按指定位置插入图片、文本等信息

热门文章

  1. JS - 讨论 - 编码习惯 - JavaScript代码到底要不要写分号?
  2. Entity Framework查询,EF执行SQl
  3. jquery 判断数据是否重复
  4. 前瞻:Java能否畅行未来?
  5. 搬了十次家,总算搬进了自己的家
  6. 循序渐进学习Linux--第二天更新
  7. 2018-05-17 第十一天
  8. Linux系统直接升级GLIBC版本
  9. Django运维后台的搭建之二:建立template和对应的ModelForm
  10. 是时候该搭建自己的私有云盘了——nextcloud 12