您现在的位置是:首页 > 正文

Set对象

2024-01-30 19:35:20阅读 0

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects

可查看网站

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

set对象中有很多的方法

1、Set.prototype.add()

add() 方法用来向一个 Set 对象的末尾添加一个指定的值。

var mySet = new Set();

mySet.add(1);
mySet.add(5).add("some text"); // 可以链式调用

console.log(mySet);
// Set [1, 5, "some text"]

mySet.add(5).add(1);
console.log(mySet);
//Set [1, 5]  // 重复的值没有被添加进去

Set.prototype.clear()

方法用来清空一个 Set 对象中的所有元素。

var mySet = new Set();
mySet.add(1);
mySet.add("foo");

mySet.size;       // 2
mySet.has("foo"); // true

mySet.clear();

mySet.size;       // 0
mySet.has("bar")  // false

Set.prototype.delete()

方法可以从一个 Set 对象中删除指定的元素。

var mySet = new Set();
mySet.add("foo");

mySet.delete("bar"); // 返回 false,不包含 "bar" 这个元素
mySet.delete("foo"); // 返回 true,删除成功

mySet.has("foo");    // 返回 false,"foo" 已经成功删除

Set.prototype.entries()

entries() 方法返回一个新的迭代器对象 ,这个对象的元素是类似 [value, value] 形式的数组,value 是集合对象中的每个元素,迭代器对象元素的顺序即集合对象中元素插入的顺序。由于集合对象不像 Map 对象那样拥有 key,然而,为了与 Map 对象的 API 形式保持一致,故使得每一个 entry 的 key 和 value 都拥有相同的值,因而最终返回一个 [value, value] 形式的数组。

var mySet = new Set();
mySet.add("foobar");
mySet.add(1);
mySet.add("baz");

var setIter = mySet.entries();

console.log(setIter.next().value); // ["foobar", "foobar"]
console.log(setIter.next().value); // [1, 1]
console.log(setIter.next().value); // ["baz", "baz"]

Set.prototype.forEach()

方法会根据集合中元素的插入顺序,依次执行提供的回调函数。

function logSetElements(value1, value2, set) {
    console.log("s[" + value1 + "] = " + value2);
}

new Set(["foo", "bar", undefined]).forEach(logSetElements);

// logs:
// "s[foo] = foo"
// "s[bar] = bar"
// "s[undefined] = undefined"

Set.prototype.has()

方法返回一个布尔值来指示对应的值value是否存在Set对象中。

var mySet = new Set();
mySet.add('foo');

mySet.has('foo');  // 返回 true
mySet.has('bar');  // 返回 false

var set1 = new Set();
var obj1 = {'key1': 1};
set1.add(obj1);

set1.has(obj1);        // 返回 true
set1.has({'key1': 1}); // 会返回 false,因为其是另一个对象的引用
set1.add({'key1': 1}); // 现在 set1 中有2条(不同引用的)对象了

Set.prototype.values()

 values() 方法返回一个 Iterator  对象,该对象按照原Set 对象元素的插入顺序返回其所有元素。

 keys() 方法是这个方法的别名 (与 Map 对象相似); 它的行为与 value 方法完全一致,返回 Set 对象的元素。

两个数组筛选出不同的值

var mySet = new Set();
mySet.add("foo");
mySet.add("bar");
mySet.add("baz");

var setIter = mySet.values();

console.log(setIter.next().value); // "foo"
console.log(setIter.next().value); // "bar"
console.log(setIter.next().value); // "baz"

 

网站文章

  • APK调试

    APK调试

    源码的情况下,对APK的动态调试主要分为两种:smali汇编动态调试arm汇编动态调试Smali汇编动态调试对smali汇编的动态调试主要分为两种:使用ida进行调试使用IDE + apktool进行调试Eclipse + apktoolAndroid studio + apktoolIdea + apktool…使用jeb2.2以后版本调试IDA 调试smali...

    2024-01-30 19:35:13
  • 使用SourceMonitor完成静态测试

    使用SourceMonitor完成静态测试

    摘要:软件测试作为软件开发中的重要环节,其重要程度不言而喻,从需求定制到软件交付,不仅要保证软件在功能上的要求,同时也要满足性能需求。毕竟,客户体验才是软件赖以生存的基石。本篇文章主要讲述了如何使用SourceMonitor这款软件完成最基本的静态测试,整个流程比较简单。一、软件安装由于本次实验是基于SourceMonitor这款软件完成的,所以需要先下载相应的安装包,网上搜...

    2024-01-30 19:35:05
  • 南艺附中 计算机音乐,南京艺术学院2018年音乐类本科招生考试科目及内容

    南京艺术学院2018年音乐类本科招生考试科目及内容考试科目及内容招生专业及方向考试科目、内容音乐表演(声乐演唱)初试:①演唱(自选歌曲1首)②面试复试:①演唱(自选歌曲2首,曲目不同于初试)②基本乐理...

    2024-01-30 19:34:38
  • Toad for Oracle工具的使用(二)

    Toad for Oracle工具的使用(二)

    脚本管理器 (Script manager): 通过Script Manager,可以对常用的SQL 脚本进行集中管理。还可以做如下工作:

    2024-01-30 19:34:30
  • 翻转棋

    翻转棋

    广搜的问题,重点是位运算的应用。每翻转一个状态就对应一个16位的二进制数。翻转一次就是把某个数上下左右四个位置的棋子都翻转,即0->1,1->0。 Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26891 Accepted: 11647

    2024-01-30 19:34:22
  • Linux下Shell实现当文件大于某size时候删除功能

    Linux下Shell实现当文件大于某size时候删除功能

    2024-01-30 19:33:50
  • c++实现八数码游戏

    c++实现八数码游戏 #include #include #include #include #include #include #include #include #include #include #in

    2024-01-30 19:33:43
  • centos7安装tesseract 4.1.1

    安装leptonicawget http://www.leptonica.org/source/leptonica-1.78.0.tar.gztar -xzvf leptonica-1.78.0.ta...

    2024-01-30 19:33:36
  • 通过 API 远程管理 Jenkins

    背景介绍 最近接到一个需求,需要对公司内部的Android性能测试平台的分支管理模块进行改造。 为了更好地说明问题,在下图中展示了一个精简的持续集成测试系统。 在该系统中,Jenkins负责定时检测代...

    2024-01-30 19:33:07
  • java/php/node.js/python的高校教师指导的毕业论文查询系统【2024年毕设】

    java/php/node.js/python的高校教师指导的毕业论文查询系统【2024年毕设】

    本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

    2024-01-30 19:33:00