ES6学习笔记七(Set和Map)
1、Set的方法
/**Set的数据结构只能进行增,删,查操作,不能进行修改(Set不能通过索引来查询数据)*///增加add()
var set = new Set() // Set(0) {}
// 添加数据
set.add('ES6') // Set(1) {"ES6"}
// 还可以链式添加数据
set.add('javascript').add({age: 7}) // delete 删除数据: 删除指定的数据,或者清空数据
var set = new Set([1, 2, 3]);
set.delete(3)//删除数字3 true
console.log(set);//Set(2) {1,2}// set.size 可以统计多少条数据,类似数组中的length属性
console.log(set.size); // 2// clear 会清空Set实例
console.log(set.clear()); // undefined// has 方法可以查看某个元素是否包含在 Set 实例中
console.log(set.has('a')); // false
console.log(set.has(1)); // true
2、数组去重
//通过hash方法去重,利用对象的键是唯一的。function unique(arr){const newArr = [];const hash = {};for(var i=0; i<arr.length; i++){if(!hash[arr[i]]){//不为真说明还没加入新数组中hash[arr[i]] = true;//赋值为真newArr.push(arr[i]);//加入1到新的数组}}return newArr;}console.log(unique([1,2,2,3,4,5,3,2,1]))//[1,2,3,4,5]//通过Set方法去重function unique(arr) {return [...new Set(arr)]}console.log(unique([1,2,2,3,4,5,3,2,1]))
3、Set遍历
//通过forEach()进行遍历
let set = new Set(['a', 'b', 'c'])
set.forEach((item) => {console.log(item)
})//通过for...of遍历
var set = new Set(['a', 'b', 'c'])set.keys(); // SetIterator {"a", "b", "c"}
set.values(); // SetIterator {"a", "b", "c"}
set.entries(); // SetIterator {"a" => "a", "b" => "b", "c" => "c"}for(var [key, value] of set.entries()) {console.log(key, value)
}
// a, a
// b, b
// c, c
4、Map
//增加
var map = new Map([["x", 1], ["y", 2], ["z", 3]]);//参数只要是可遍历的即可
map.set('a', 1).set('b', 2).set('c', 3);//链式添加
map.set('u', 4);//key值可以是任意值(字符串,对象,数组,函数)//获取
console.log(map.get(key));//判断某一个值是否存在
map.has(key); //删除某一个值
map.delete(key);//移除map中的所有对象
map.clear(); // 返回 undefined
map.clear(key);//删除特定的key
5、Map遍历
let map = new Map([["x", 1], ["y", 2], ["z", 3]]);for (let value of map.values()) {console.log(value);
}
// 1
// 2
// 3
for (let key of map.keys()) {console.log(key)
}
//x
//y
//z
for (let [key, value] of map.entries()) {console.log(key + " = " + value);
}
// x = 1
// y = 2
// z = 3
欢迎访问我的个人博客
ES6学习笔记七(Set和Map)相关推荐
- ES6学习笔记04:Set与Map
ES6学习笔记04:Set与Map JS原有两种数据结构:Array与Object,ES6新增两种数据结构:Set与Map 一.Set数据结构 Set类似于数组,但是成员值不允许重复,因此主要用于数据 ...
- ES6学习(七)—Set 和 Map 数据结构
ES6学习(七)-Set 和 Map 数据结构 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.ES6 提供了新的数据结构 Set.它类似于数组,但是成员 ...
- es6学习笔记-字符串的扩展_v1.0_byKL
es6学习笔记-字符串的扩展_v1.0 字符的Unicode表示法 JavaScript 允许使用uxxxx的形式表示一个字符,但在 ES6 之前,单个码点仅支持u0000到uFFFF,超出该范围的必 ...
- ES6学习笔记(五):轻松了解ES6的内置扩展对象
前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...
- # es6 学习笔记
es6 学习笔记 let变量 let和var用法级别一样 let不能重复声明,但是var可以 var varIns = "A"; var varIns = "B" ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码
吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...
- websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...
Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...
- ES6学习笔记03:变量的解构赋值
ES6学习笔记03:变量的解构赋值 如果想从复杂数据结构(数组.对象)中获取某一个数据,可能需要大量的遍历操作才能完成.通过解构赋值,这一过程可以得到简化. 1.字符串的解构赋值 其实,Python也 ...
最新文章
- 为DataGridView添加行号
- 2021年春季学期-信号与系统-第六次作业参考答案-第九小题
- 字节跳动涉代码抄袭被诉陪22.74亿,连错误的函数都搬?
- 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】
- 最长公共子序列(信息学奥赛一本通-T1265)
- LuoguP1131 [ZJOI2007]时态同步
- [转]远远走来一个绿茶婊
- 如何撤消与冲突的git合并
- Web请求响应编码问题详解
- C# 取Visio模型信息的简易方法
- 2G到5G系统的横向比较(1)多址方式与调制方式
- html5视频全屏背景插件(支持全屏背景,标签实现)
- vue 里面的slot属性
- C语言堆栈应用之逆波兰法表达式求值
- 用计算机知道对方的年龄,年龄计算器适合你的恋爱对象,什么年龄适合恋
- springboot 调用方法事物_springboot中使用@Transactional注解事物不生效的坑
- 手机屏幕尺寸、分辨率,图像像素、分辨率、实际大小解惑
- MySQL语句的条件查询
- 缺陷特征描述及特征选择
- 视频分割怎么使用?别担心,好用方法来啦
热门文章
- html自动get提交,html跳转,获取get提交参数
- Rotate Array
- hive应用实例 将查询结果写入原表中
- 山山的数学(简单版)
- php 字符串包含另一个字符串_利用PHP的字符串解析特性Bypass
- linux安装后root密码错误,linux新安装后root密码设置
- perl mysql 时间戳_讲Perl中的本地时间与UNIX时间戳间相互转换的方法
- innodb为什么写入数据快_重要,知识点:InnoDB的插入缓冲
- 比赛现场打分管理平台的前后台安装配置和使用疑难问题汇编
- linux系统一键安装php运行环境apache,mysql等