From 419ce2832442db78742d9bf90edd892b84a062fb Mon Sep 17 00:00:00 2001 From: qianguyihao Date: Tue, 25 Aug 2020 21:35:30 +0800 Subject: [PATCH] =?UTF-8?q?add:=20Set=20=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../07-剩余参数和扩展运算符.md | 9 ++++ ...、对象的扩展.md => 08-字符串、数组、对象的扩展.md} | 0 .../09-内置对象扩展:Set数据结构.md | 44 +++++++++++++++++++ ...Promise入门详解.md => 10-Promise入门详解.md} | 0 ...async函数详解.md => 11-ES7:async函数详解.md} | 0 5 files changed, 53 insertions(+) rename 05-JavaScript之ES6语法/{08-ES6:字符串、数组、对象的扩展.md => 08-字符串、数组、对象的扩展.md} (100%) create mode 100644 05-JavaScript之ES6语法/09-内置对象扩展:Set数据结构.md rename 05-JavaScript之ES6语法/{09-ES6:Promise入门详解.md => 10-Promise入门详解.md} (100%) rename 05-JavaScript之ES6语法/{10-ES7:async函数详解.md => 11-ES7:async函数详解.md} (100%) diff --git a/05-JavaScript之ES6语法/07-剩余参数和扩展运算符.md b/05-JavaScript之ES6语法/07-剩余参数和扩展运算符.md index 73b3804..887c16e 100644 --- a/05-JavaScript之ES6语法/07-剩余参数和扩展运算符.md +++ b/05-JavaScript之ES6语法/07-剩余参数和扩展运算符.md @@ -208,3 +208,12 @@ const divArr = [...myDivs]; // 利用扩展运算符,将伪数组转为真正 ```js let arr2 = Array.from(arrayLike); ``` + + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) diff --git a/05-JavaScript之ES6语法/08-ES6:字符串、数组、对象的扩展.md b/05-JavaScript之ES6语法/08-字符串、数组、对象的扩展.md similarity index 100% rename from 05-JavaScript之ES6语法/08-ES6:字符串、数组、对象的扩展.md rename to 05-JavaScript之ES6语法/08-字符串、数组、对象的扩展.md diff --git a/05-JavaScript之ES6语法/09-内置对象扩展:Set数据结构.md b/05-JavaScript之ES6语法/09-内置对象扩展:Set数据结构.md new file mode 100644 index 0000000..feb7937 --- /dev/null +++ b/05-JavaScript之ES6语法/09-内置对象扩展:Set数据结构.md @@ -0,0 +1,44 @@ +## Set 数据结构 + +### Set 数据结构的介绍 + +ES6 提供了 新的数据结构 Set。Set 类似于**数组**,但成员的值都是**唯一**的,没有重复的值。 + +Set 的应用有很多。比如,在 H5 页面的搜索功能里,用户可能会多次搜索重复的关键字;但是在数据存储上,不需要存储重复的关键字。此时,我们就可以用 Set 来存储用户的搜索记录,Set 内部会自动判断值是否重复,如果重复,则不会进行存储,十分方便。 + +### 生成 Set 数据结构 + +Set 本身就是一个构造函数,可通过 `new Set()` 生成一个 Set 的实例。 + +举例 1: + +```js +const set1 = new Set(); +console.log(set1.size); // 打印结果:0 +``` + +**举例 2**、可以接收一个**数组**作为参数,实现**数组去重**: + +```js +const set2 = new Set(['张三', '李四', '王五', '张三']); // 注意,这个数组里有重复的值 + +// 注意,这里的 set2 并不是数组,而是一个单纯的 Set 数据结构 +console.log(set2); // {"张三", "李四", "王五"} + +// 通过扩展运算符,拿到 set 中的元素(用逗号分隔的序列) +// ...set2 // "张三", "李四", "王五" + +// 注意,到这一步,才获取到了真正的数组 +console.log([...set2]); // ["张三", "李四", "王五"] +``` + +注意上方的第一行代码,虽然参数里传递的是数组结构,但拿到的 `set2` 不是数组结构,而是 Set 结构,而且里面元素是去重了的。通过 `[...set2]`就可以拿到`set2`对应的数组。 + + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) diff --git a/05-JavaScript之ES6语法/09-ES6:Promise入门详解.md b/05-JavaScript之ES6语法/10-Promise入门详解.md similarity index 100% rename from 05-JavaScript之ES6语法/09-ES6:Promise入门详解.md rename to 05-JavaScript之ES6语法/10-Promise入门详解.md diff --git a/05-JavaScript之ES6语法/10-ES7:async函数详解.md b/05-JavaScript之ES6语法/11-ES7:async函数详解.md similarity index 100% rename from 05-JavaScript之ES6语法/10-ES7:async函数详解.md rename to 05-JavaScript之ES6语法/11-ES7:async函数详解.md