大家好,欢迎来到IT知识分享网。
Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。
一、方法
1、添加元素 add()
添加某个值,返回 Set 结构本身,当添加实例中已经存在的元素,set不会进行处理添加。也可以采用链式写法。
var list = new Set();
list.add("a");
list.add(1).add(2).add(3).add(3);
console.log(list);
2、删除元素 delete()
删除某个值,返回一个布尔值。
var list = new Set(["a", 1, 2, 3]);
list.delete(2);
console.log(list);
3、has()
判断某元素是否存在,返回一个布尔值。
var list = new Set(["a", 1, 2, 3]);
list.has(2); //true
4、clear()
清除所有元素,没有返回值。
var list = new Set(["a", 1, 2, 3]);
list.clear();
console.log(list);
5、 遍历方法:
Set结构的实例有四个遍历方法,可用于遍历成员。
keys(),values(),entries()返回的都是遍历器对象。Set结构没有键名,只有键值,所以keys()和values()方法的行为完全一致。
(1)keys():返回键名的遍历器
var list = new Set(["a", 1, 2, 3]);
for(let key of list.keys()) {
console.log(key); // a 1 2 3
}
(2)values():返回键值的遍历器
var list = new Set(["a", 1, 2, 3]);
for(let value of list.values()) {
console.log(value); // a 1 2 3
}
(3)entries():返回键值对的遍历器
var list = new Set(["a", 1, 2, 3]);
for(let row of list.entries()) {
console.log(row); // ["a", "a"] [1, 1] [2, 2] [3, 3]
}
(4)forEach():使用回调函数遍历每个成员
var list = new Set(["a", 1, 2, 3]);
list.forEach((value, key) => {
console.log(key + ":" + value); // a:a 1:1 2:2 3:3
});
二、使用场景
1、用于数组去重
var arr = [2, 3, 5, 3, 5, 2];
var arrSet = new Set(arr);
console.log(arrSet); // Set(6) {2, 3, 5}
//方法一:用ES6的...结构
let newArr1 = [...arrSet];
console.log(newArr1 ); // [2, 3, 5]
//方法二:用Array.from()将类数组转化为数组
let newArr2 = Array.from(arrSet);
console.log(newArr2 ); // [2, 3, 5]
2、用于字符串去重
var str = "2234332244";
var newStr = [...new Set(str)].join("");
console.log(newStr); //234
3、实现并集、交集、和差集
let a = new Set([1, 2, 3]),
b = new Set([2, 3, 4]);
//并集
var res1 = new Set([...a, ...b]);
console.log('并集:', res1);
//交集
var res2 = new Set([...a].filter(x => b.has(x)));
console.log('交集:', res2);
//差集(a 相对于 b)
var res3 = new Set([...a].filter(x => !b.has(x)));
console.log('差集:', res3);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11761.html