更新时间:2022-07-27 来源:黑马程序员 浏览量:
ES6提供了新的数据结构Set。Set类似于数组,但是成员的值都是唯一的,没有重复的值。它的实例的方法分为两大类,即操作方法(用于操数据)和遍历方法(用于遍历成员)。
Set数据结构常用于电商网站的搜索功能中,用户搜索完成后,网站要记录用户搜索的关键字,方便用户下次直接单击搜索历史关键字来完成搜索。
Set本身是一个构造函数,创建此构造函数的实例对象就是创建Set数据结构。创建Set数据结构示例代码:
<script> const s1 = new Set0; //使用new关键字创建Set构造函数的实例 console.log(s1.size); //输出结果: 0 </script>
在创建Set数据结构时,也可以传递一个数组作为参数,用来初始化。初始化Set数据结构示例代码如下:
<script> const s2 = new Set(['a', 'b']); console.log(s2.size);//输出结果:2 </script>
在初始化Set构造函数时,可以传递一个数组作为参数,如果数组中有重复的值,那么Set数据结构会把重复的值过滤掉。
数组去重示例代码
<script> const s3 = new Set(["a", "a", "b","b"]); console.log(s3.size);//输出结果:2 const ary = [...s3]; //输出结果:(2)["a","b"] donsole.log(ary); </script>
Set实例提供的add(0方法用于向Set数据结构中添加某个值,它接收一个参数代表要添加的值,返回Set结构本身。演示add0方法的使用
<script> const s4 = new Set(); s4.add('a').add('b'); console.log(s4.size);//输出结果:2 </script>
Set实例提供的delete()方法用于删除Set数据结构中的某个值,它接收一个参数代表要删除的值,返回一个布尔值,如果结果为true则表示删除成功,为false则表示删除失败。演示delete()方法的使用
<script> const s4 = new Set(); s4.add('a').add('b'); const r1 = s4.delete('a'); console.log(s4.size);//输出结果:1 console.log(r1); //输出结果:true </script>
Set实例提供has()方法,该方法接收一个参数并判断该参数是否为Set数据结构中的成员,返回一个布尔值,如果结果为true则表示包含该成员,为false则表示不包含该成员。演示has()方法的使用:
<script> const s4 = new Set(); s4.add('a').add('b'); const r1 = s4.delete('a'); console.log(s4.size); //输出结果:1 console.log(r1); //输出结果:true const r2 = s4.has('a'); console.log(r2); //输出结果:false </script>
Set实例提供的clear()方法用于清除Set数据结构中的所有成员,该方法没有返回值。演示clear0方法的使用:
<script> const s4 = new Set(); s4.add('a').add('b'); es4.clear(); console.log(s4.size);//输出结果:0 </script>
Set数据结构的实例与数组一样,也拥有一个forEachO方法,用于遍历Set数据结构中的成员,该方法可以对每个成员执行某种操作,没有返回值。演示forEach(0方法的使用:
<script> const s5 = new Set(['a', 'b', 'c']); s5.forEach(value => { console.log(value);/∥/依次输出a、b、c }); </script>