美文网首页
ES6新增的数据类型 Set;

ES6新增的数据类型 Set;

作者: 吴高亮 | 来源:发表于2019-01-05 22:32 被阅读0次

1:set es6新增的数据结构;类似于数组;但是它内部成员是唯一的;不具备重复的值;

set本身是个构造函数;用来生成set数据结构;

var s=new Set();
[1,2,3,4,5,2,1,2].forEach(x=>s.add(x));
for(let i of s){
console.log(i);
};
1 2 3 4 5;
上面是通过add()方法;将数据放在set方法中;表明取除了重复性;

另外set也接受一组参数作为初始化;

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


// 去除数组的重复成员
[...new Set(array)];
//去除重复的字符串;
[...new Set('abbcb')].join('');
//abc;

向 Set 加入值的时候,不会发生类型转换,所以5和"5"是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。

2 set的一些属性

  • 方法add();
let s=new Set();
s.add(1);
s.add(2);
s.add(2);
s.size()//2;
 2 被加入了两次;但是因为完全相等所以s的长度就是2;

-方法has();

s.has(1);//true;
s.has(3);//false;
  • 方法delete()
s.delete(2);
s.has(2);//false;

总结

add(value):添加某个值,返回 Set 结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。

let set = new Set(['red', 'green', 'blue']);
let arr = [...set];
// ['red', 'green', 'blue']
//删除重复的
let arr = [3, 5, 2, 2, 5, 5];
let unique = [...new Set(arr)];
// [3, 5, 2]

let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);

// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}

// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}

// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}

相关文章

  • js判断数组是否有重复值

    1.利用es6新增数据类型Set实现的方式

  • ES6新增Map和Set数据类型

    Map和Set Map 和 Set 是 ES6 标准新增的数据类型 Map JavaScript的对象(Objec...

  • 前端海底捞不定期跟新

    2017年8月 1,ES6 Map和Set Map ES6中新增的数据类型,类似PHP中的键值对形式结构 Set ...

  • JavaScript-Set

    Set ES6新增数据类型 Set是一组key的集合,并不存储value, key不能重复存储

  • js基础 - 草稿

    1 常用es6 class类继承;箭头函数;let const;新增的数据类型Symbl;set和map;解构赋值...

  • web前端ES6/7/8新特性

    ES6中新增了哪些数据类型?Symbol类型(基本)Set类型(复杂)Map类型(复杂)WeakSet类型(复杂)...

  • ES6新增了哪些特性?

    ES6新增了哪些特性? const(声明常量),let(声明变量),var(声明变量)全局 map和set数据类型...

  • js中的set和map类型

    Set与map Es6中新增加了两个数据类型set和map类型,下面就看下这两个类型的特性和用法。 一、 Set ...

  • ES6新增的数据类型

    首先整理一下,js一共有哪些数据类型 其中,object又分为 ES6给Object新增了几种数据类型 set 对...

  • JavaScript Map和Set

    注意:Map和Set是ES6标准新增的数据类型 Map:增强版的Object Object的属性名只能为strin...

网友评论

      本文标题:ES6新增的数据类型 Set;

      本文链接:https://www.haomeiwen.com/subject/dchrrqtx.html