JavaScript -- Set数据结构

66 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

什么是Set

==Set是一系列无序、没有重复值的数据集合==;

数组是一系列有序的数据集合。

Set实例的属性和方法

add()

add()向Set实例中添加一个值,可连续添加。

添加数据时,Set会将重复值去掉; nimg.cn/662f42df8709497895f9da7c5c215217.png)

但可以向Set实例中添加两个一样的对象,因为两个对象在内存中的地址不一样。 在这里插入图片描述

has()

判断Set实例中是不是含有某个成员。 在这里插入图片描述

delete()

删除Set实例成员,删除实例中不存在的成员不报错。

在这里插入图片描述

clear()

清空Set实例成员。 在这里插入图片描述

forEach()

按添加顺序遍历Set实例成员,接收两个参数,第一个是一个回调,回调接收三个参数:value、key、Set。第二个参数是是this指向。

在Set中,value === key, Set ===Set实例。

在这里插入图片描述

size属性

获取Set成员个数。 在这里插入图片描述

Set构造函数

数组

数组作为参数,传入构造函数。 在这里插入图片描述

字符串

字符串作为参数,传入构造函数。 在这里插入图片描述

arguments

arguments作为参数,传入构造函数。 在这里插入图片描述

DOM

DOM节点作为参数,传入构造函数。

  	<p>1</p>
    <p>2</p>
    <script>
        const s = new Set(document.querySelectorAll('p'));
        console.log(s);
    </script>

在这里插入图片描述

Set

Set作为参数,传入构造函数,相当于Set实例的克隆。 在这里插入图片描述

注意事项

判断重复的方式

Set对于重复值的判断基本遵循 ===,但在Set中NaN ===NaN。 在这里插入图片描述

Set应用

Set转数组

数组中解构

在这里插入图片描述

from()

在这里插入图片描述

from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。

如果对象是数组返回 true,否则返回 false。

数组去重

在这里插入图片描述

字符串去重

在这里插入图片描述

DOM操作

    <p>1</p>
    <p>2</p>
    <script>
        const s = new Set(document.querySelectorAll('p'));
        s.forEach(function (element){
            element.style.color = 'red';
        })
    </script>

在这里插入图片描述

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!