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集合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现皮肤功能(夜间模式)

    微信小程序实现皮肤功能(夜间模式)

    这篇文章主要给大家介绍了关于利用微信小程序实现皮肤功能,也就是实现夜间模式的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 微信小程序性能优化之checkSession的使用

    微信小程序性能优化之checkSession的使用

    这篇文章主要介绍了微信小程序性能优化之checkSession的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • JS基于对象的链表实现与使用方法示例

    JS基于对象的链表实现与使用方法示例

    这篇文章主要介绍了JS基于对象的链表实现与使用方法,结合实例形式分析了链表的原理及javascript定义与使用链表的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • Javascript和jquery在selenium的使用过程

    Javascript和jquery在selenium的使用过程

    这篇文章主要介绍了Javascript和jquery在selenium的使用过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • js获取数组任意个不重复的随机数组元素

    js获取数组任意个不重复的随机数组元素

    新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组
    2010-03-03
  • 新版小程序登录授权的方法

    新版小程序登录授权的方法

    这篇文章主要介绍了新版小程序登录授权的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 深入理解JavaScript中的并行处理

    深入理解JavaScript中的并行处理

    这篇文章给大家详细介绍了JavaScript中的并行处理,一直以来,JavaScript 都并没有多线程的能力,而单线程在让开发者方便的同时,也使它一直不能处理计算量复杂的场景,唯一方法就是让服务端去做。下来通过这篇文章我们一起来看看详细介绍。
    2016-09-09
  • js LZ77算法的实现代码

    js LZ77算法的实现代码

    JS操作二进制很麻烦,而且一直没有一个好的无损压缩工具来实现纯文本的压缩。
    2010-04-04
  • layui 上传图片 返回图片地址的方法

    layui 上传图片 返回图片地址的方法

    今天小编就为大家分享一篇layui 上传图片 返回图片地址的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS中不推荐使用的几个函数方法

    JS中不推荐使用的几个函数方法

    随着JavaScript技术的不断进步和语言的持续演化,一些曾经备受瞩目的功能逐渐变得不再那么有用,甚至被更现代、更高效的替代方案所取代,今天,我们就来一起探讨几个原生JavaScript中那些“不再那么有用”的功能与API,最好避免使用的几个函数方法
    2025-01-01

最新评论