JavaScript内置对象Set

Set对象总结:

(转载请注明出处!!!!!)_(:з)∠)_

1. 概要说明

From:MDN-API
在这里插入图片描述

2.初始化(实例化)

1.无参:var set = new Set();
2.含参:

var set = new Set([iterable]);//From MDN-API 
//[iterable]:iterable对象(非iterable对象构成的数组),包括Array,Map,Set

//eg:
var set = new Set([1, 2, 3, 4, 5]);//含有5个元素的Set,每个元素为Number
var set2 = new Set(set);
console.log(set2);//Set(5)——含有5个元素的Set,每个元素为Number
var set3 = new Set([set]);
console.log(set3);//Set(1)——含有1个元素的Set,每个元素为Set

3.实例的属性

size:Set大小

//相关测试:
//内置对象——Set
console.log(Set.size);//undefined
console.log(Set.prototype);//[object Set]
console.log(Set.length);//0
//Set实例
console.log(set2.size);//5
console.log(set2.length);//undefined

4.实例的方法(常用)

  • Set.prototype.add(value)
    在Set对象尾部添加一个元素。返回该Set对象。
  • Set.prototype.clear()
    移除Set对象内的所有元素。
  • Set.prototype.delete(value)
    移除Set的中与这个值相等的元素,返回Set.prototype.has(value)在这个操作前会返回的值(即如果该元素存在,返回true,否则返回false)。Set.prototype.has(value)在此后会返回false。
  • Set.prototype.entries()
    返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值的[value, value]数组。为了使这个方法和Map对象保持相似, 每个值的键和值相等。
  • Set.prototype.forEach(callbackFn[, thisArg])
    按照插入顺序,为Set对象中的每一个值调用一次callBackFn。如果提供了thisArg参数,回调中的this会是这个参数。
  • Set.prototype.has(value)
    返回一个布尔值,表示该值在Set中存在与否。
  • Set.prototype.keys()
    与values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
  • Set.prototype.values()
    返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
  • Set.prototype@@iterator
    返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
//相关测试:
//eg1:
set2.add(6);//元素包括:1,2,3,4,5,6
set2.add(6);//元素包括:1,2,3,4,5,6
set2.add("6")//元素包括:1,2,3,4,5,6,“6”
//eg2:
有待补充

注:MDN上关于Set的示例也很不错(实例的使用与迭代),不搬运了

5.集合的交并补操作(ES6)

From: OutbreakUniverse CSDN Blog

let a = new Set([1, 2, 3]);
let b = new Set([3, 5, 2]); 
// 并集
let unionSet = new Set([...a, ...b]);//元素包括:1,2,3,5
// 交集
let intersectionSet = new Set([...a].filter(x => b.has(x)));// 元素包括:2,3
// a-b的差集
let differenceABSet = new Set([...a].filter(x => !b.has(x)));//元素包括:1
// b-a的差集
let differenceBASet = new Set([...a].filter(x => !b.has(x)));//元素包括:5

注:JS数组求并集,交集和差集这篇博客给出了ES7/6/5下不错的求集合交并补操作的方法

6.主要参考资料(上文中均有提及)

https://blog.csdn.net/HobbitHero/article/details/77891323
https://excaliburhan.com/post/js-set-operation.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值