ES6新特性之Set和Map
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相关推荐
- es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构
往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...
- html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结
前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...
- 尚硅谷es6新特性笔记
尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...
- lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?
国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...
- ES6新特性----面试
ES6新特性 关键字 let关键字 const关键字 解构赋值 变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 用途 模板字符串 箭头函数 ...
- ES6新特性(部分语法)
ES6新特性 文章目录 ES6新特性 1.0let关键字 1.1let小案例 1.2const关键字 1.3解构赋值 1.4模板字符串 1.5简化对象写法 1.6箭头函数 1.7箭头函数的案例 1.7 ...
- 一文快速掌握 es6+新特性及核心语法
首先先祝各位节日快乐,好好去体验生活的快乐,在假期最后一天里,祝大家收获满满,同时抓住假期的尾巴,收割实用技能. 接下来我会总结一些工作中常用也比较核心的es6+的语法知识,后面又要慢慢开始工作之旅了 ...
- es6新增数组、数组去重、es6新特性
ES6新增的数组方法 1.forEach forEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第 ...
- html5,css3,es6新特性总结
html5新特性 语义化标签 如:header,footer,nav,dialog 增强型表单 如:date,week,url,time,email,month 视频和音频 audio和video C ...
最新文章
- [网络安全提高篇] 一〇八.Powershell和PowerSploit脚本渗透详解 (1)
- 提高ASP.net性能的十种方法
- Ubuntu apt upgrade后黑屏问题
- docker 查看容器_Docker介绍
- 契税申报期限_税局正式公告!财产和行为税合并纳税申报!附税种申报要点
- swarm 和 k8s_Wildfly Swarm,朝着成熟和一小部分贡献
- Qt工作笔记-Linux上字体问题,导致所有文字重叠在一起
- spring整合dubbo实现简单分布式接口调用
- 【Spring】SpringMVC 初始化 流程
- e站host地址_ip地址基础入门知识
- rtklib-RINEX文件读取-rinex.c解析(一)
- [渝粤教育] 西南科技大学 语言学概论(英语) 在线考试复习资料
- 洛谷 P1878 舞蹈课(优先队列 + 双链表)
- 工程数学(经常用到的工程数学知识进行整理)
- 手机必备四款提高工作效率APP,每一个都是黑科技!
- 在IT产品白皮书中遇到的缩略词
- :before、:after伪元素的用法 !
- python爬取豆瓣电影评论_使用Python抓取豆瓣影评数据的方法
- Python每日一练——列表,元组和字典第十一关:del和pop的用法
- fme和python-docx结合实现批量按指定位置插入图片、文本等信息