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)相关推荐

  1. ES6学习笔记04:Set与Map

    ES6学习笔记04:Set与Map JS原有两种数据结构:Array与Object,ES6新增两种数据结构:Set与Map 一.Set数据结构 Set类似于数组,但是成员值不允许重复,因此主要用于数据 ...

  2. ES6学习(七)—Set 和 Map 数据结构

    ES6学习(七)-Set 和 Map 数据结构 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.ES6 提供了新的数据结构 Set.它类似于数组,但是成员 ...

  3. es6学习笔记-字符串的扩展_v1.0_byKL

    es6学习笔记-字符串的扩展_v1.0 字符的Unicode表示法 JavaScript 允许使用uxxxx的形式表示一个字符,但在 ES6 之前,单个码点仅支持u0000到uFFFF,超出该范围的必 ...

  4. ES6学习笔记(五):轻松了解ES6的内置扩展对象

    前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...

  5. # es6 学习笔记

    es6 学习笔记 let变量 let和var用法级别一样 let不能重复声明,但是var可以 var varIns = "A"; var varIns = "B" ...

  6. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  8. websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

    Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...

  9. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  10. ES6学习笔记03:变量的解构赋值

    ES6学习笔记03:变量的解构赋值 如果想从复杂数据结构(数组.对象)中获取某一个数据,可能需要大量的遍历操作才能完成.通过解构赋值,这一过程可以得到简化. 1.字符串的解构赋值 其实,Python也 ...

最新文章

  1. 为DataGridView添加行号
  2. 2021年春季学期-信号与系统-第六次作业参考答案-第九小题
  3. 字节跳动涉代码抄袭被诉陪22.74亿,连错误的函数都搬?
  4. 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】
  5. 最长公共子序列(信息学奥赛一本通-T1265)
  6. LuoguP1131 [ZJOI2007]时态同步
  7. [转]远远走来一个绿茶婊
  8. 如何撤消与冲突的git合并
  9. Web请求响应编码问题详解
  10. C# 取Visio模型信息的简易方法
  11. 2G到5G系统的横向比较(1)多址方式与调制方式
  12. html5视频全屏背景插件(支持全屏背景,标签实现)
  13. vue 里面的slot属性
  14. C语言堆栈应用之逆波兰法表达式求值
  15. 用计算机知道对方的年龄,年龄计算器适合你的恋爱对象,什么年龄适合恋
  16. springboot 调用方法事物_springboot中使用@Transactional注解事物不生效的坑
  17. 手机屏幕尺寸、分辨率,图像像素、分辨率、实际大小解惑
  18. MySQL语句的条件查询
  19. 缺陷特征描述及特征选择
  20. 视频分割怎么使用?别担心,好用方法来啦

热门文章

  1. html自动get提交,html跳转,获取get提交参数
  2. Rotate Array
  3. hive应用实例 将查询结果写入原表中
  4. 山山的数学(简单版)
  5. php 字符串包含另一个字符串_利用PHP的字符串解析特性Bypass
  6. linux安装后root密码错误,linux新安装后root密码设置
  7. perl mysql 时间戳_讲Perl中的本地时间与UNIX时间戳间相互转换的方法
  8. innodb为什么写入数据快_重要,知识点:InnoDB的插入缓冲
  9. 比赛现场打分管理平台的前后台安装配置和使用疑难问题汇编
  10. linux系统一键安装php运行环境apache,mysql等