JavaScript中Set集合的方法详情

 更新时间:2022年09月14日 09:34:09   作者:i东东  
这篇文章主要介绍了JavaScript中Set集合的方法详情,Set是唯一值的集合。每个值在Set中只能出现一次。一个Set可以容纳任何数据类型的任何值

Set集合概述

  • Set集合和Arry数组很相似,但是Set集合存储的是key也就是说Set集合中不可以存在两个值和数据类型都相等的key
  • Set集合不可以用下标取值
  • Set集合没有length属性而是size
  • Set集合可以通过Array.from转为真正的数组

如何创建并使用 Set

创建一个 Set 并添加现有变量:

// 创建变量
const a = "a";
const b = "b";
const c = "c";

// 创建 Set
const letters = new Set();

letters.add(a);
letters.add(b);
letters.add(c);

Add()

往集合添加元素,会进行去重,重复的元素添加只会显示一个

var set = new Set()
set.add(1)
console.log(set); // {1}

var set = new Set().add(1).add([2,3,4])
console.log(set); // {1, [2,3,4]}

var set = new Set([1,2,3,4,5,6]);
console.log(set.add(123)); // {1, 2, 3, 4, 5,6,123} 说明添加成功了
console.log(set.add(1)); // {1, 2, 3, 4, 5,6,123} 说明重复的没有添加成功

Clear()

清空Set对象

var set = new Set([1,2,3,4,5,6]);
set.clear()
console.log(set); // {size: 0} 清空成功

Delete()

删除Set对象中的值

var set = new Set([1,2,3,4,5,6]);
console.log(set.delete(1));  // true 说明删除成功
console.log(set.delete(1));  // false说明删除失败,因为集合中已经不存在 1
console.log(set);   // [2,3,4,5,6] 1被删除掉了

Entries()

Entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。迭代对象中数组的索引值作为 key, 数组元素作为 value。

var set = new Set([1,2,3,4,5]);
console.log(set); // {1, 2, 3, 4, 5}
console.log(set.entries()); // {1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5}

Has()

判断Set对象中某个值是否存在,存在返回true,不存在返回false

var set = new Set([1,2,3,4,5]);
console.log(set.has(1)); // ture 说明Set对象中存在1
console.log(set.has(6)); // false 说明Set对象中不存在6

ForEach()

为每个元素调用回调 它具有三个参数:

  • .value:可选,Set对象中元素的值。
  • .key:可选由于Set对象没有键,所以key的值和value的值相同。
  • .setObj:可选,Set对象本身。
var set = new Set([1,2,3,4,5]);
set.forEach((value,key,setObj)=>{
  console.log(value,key,setObj);
})
// 1 1 {1, 2, 3, 4, 5}
// 2 2 {1, 2, 3, 4, 5}
....

Keys() 与 values()

返回Set对象的key值数组,返回Set对象的value值数组

var set = new Set([1,2,3,4,5]);
console.log(set.keys()); // {1, 2, 3, 4, 5}
console.log(set.values()); // {1, 2, 3, 4, 5}

Size

返回Set对象中元素计数

var set = new Set([1,2,3,4,5]);
console.log(set.size);  // 5

Set 对象的方法和属性集合

名称说明
new Set()创建新的 Set 对象。
add()向 Set 添加新元素。
clear()从 Set 中删除所有元素。
delete()删除由其值指定的元素。
entries()返回 Set 对象中值的数组。
has()如果值存在则返回 true。
forEach()为每个元素调用回调。
keys()返回 Set 对象中值的数组。
values()与 keys() 相同。
size返回元素计数。

到此这篇关于JavaScript中Set集合的方法详情的文章就介绍到这了,更多相关JS Set集合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • document.compatMode介绍

    document.compatMode介绍

    对于document.compatMode,很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途。
    2009-05-05
  • canvas实现十二星座星空图

    canvas实现十二星座星空图

    本文主要分享了canvas实现十二星座星空图的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 纯JS实现根据CSS的class选择DOM

    纯JS实现根据CSS的class选择DOM

    这篇文章主要介绍了纯JS实现根据CSS的class选择DOM,需要的朋友可以参考下
    2014-03-03
  • JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)

    JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)

    这篇文章主要介绍了JS实现滑动菜单效果代码,以实例形式实现了包括Tab,选项卡,横向等效果,非常简单实用,需要的朋友可以参考下
    2015-09-09
  • Bootstrap复选框和单选按钮美化插件(推荐)

    Bootstrap复选框和单选按钮美化插件(推荐)

    这篇文章主要介绍了Bootstrap复选框和单选按钮美化插件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • javascript中局部变量和全局变量的区别详解

    javascript中局部变量和全局变量的区别详解

    本文主要是向大家详细的对比分析了javascript中局部变量和全局变量的区别,是篇非常不错的文章,值得仔细去品读,推荐给小伙伴们。
    2015-02-02
  • 详解JSON.stringify()的5个秘密特性

    详解JSON.stringify()的5个秘密特性

    这篇文章主要介绍了详解JSON.stringify()的5个秘密特性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • JavaScript实现多球运动效果

    JavaScript实现多球运动效果

    这篇文章主要为大家详细介绍了JavaScript实现多球运动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JavaScript实现简易的水印覆盖功能

    JavaScript实现简易的水印覆盖功能

    本文将简单实现一个覆盖水印的小功能,水印一般都是添加在图片上,然后直接加载处理过的图片url即可,这里并没有修改图片,而是直接的在待添加水印的 dom 上添加一个 canvas 蒙版,需要的可以参考一下
    2022-12-12
  • javascript的parseFloat()方法精度问题探讨

    javascript的parseFloat()方法精度问题探讨

    javascript中的parseFloat()方法,大家应该不陌生吧,下面为大家介绍下其精度问题,感兴趣的朋友不要错过
    2013-11-11

最新评论