首页 / ES6 / Set()--Es6新的数据结构
Set()--Es6新的数据结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Set()--Es6新的数据结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2110字,纯文字阅读大概需要4分钟。
内容图文
新的数据结构Set
set实例的属性和方法
1)Set结构的实例有以下属性
Set.prototype.constructor: 构造函数,默认就是Set函数
Set.prototype.size:返回Set实例的成员总数
2)set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)
操作方法(用于操作数据)
-add(value): 添加某个值,返回Set结构本身。
-delete(value):删除某个值,返回一个布尔值,标书删除是否成功
-has(value):返回一个布尔值,表示该值是否为set的成员
-clear():清除所有成员,没有返回值
let s2 = new Set();
s2.add(1).add(2).add(2)
console.log(s2.size);
console.log(s2.has(1));
console.log(s2.has(2));
console.log(s2.has(3));
s2.delete(2);
console.log(s2.has(2));
遍历方法(用于遍历成员)
-keys():返回键名的遍历器;
-values():返回键值得遍历器;
-entries():返回键值对的遍历器:
-forEach():使用回调函数遍历每个成员;
注:需要特别指出的是,Set的遍历顺序就是插入顺序。这个特性有时非常有用,比如使用 Set 保存一个回调函数列表,调用时就能保证按照添加顺序调用。
由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
let set5 = new Set([‘red‘, ‘green‘, ‘blue‘]);
for(let item of set5.keys()) {
console.log(item);
}
for(let item of set5.values()) {
console.log(item);
}
for(let [key, value] of set5.entries()) {
console.log([key, value]);
}
-for...of....
for(let x of set5) {
console.log(x);
}
-forEach()
set5.forEach((value, key) => console.log(key + ‘:‘ + value));
遍历的应用
let set6 = new Set([‘red‘, ‘green‘, ‘blue‘]);
let arr = [...set6];
console.log(arr);
let arr2 = [3, 5, 2, 2, 5, 5];
let unique = [...new Set(arr2)];
console.log(unique);
let set7 = new Set([1, 2, 3]);
set7 = new Set([...set7].map(x => x * 2));
console.log(set7)
let a1 = new Set([1, 2, 3]);
let b1 = new Set([4, 3, 2]);
/*并集*/
let union = new Set([...a, ...b]);
/*交集*/
let intersect = new Set([...a].filter(x => b.has(x)));
/*差集*/
let difference = new Set([...a].filter(x => !b.has(x)));
去除数组中重复成员的方法
function dedepe(array) {
return Array.from(new Set(array));
}
console.log(dedepe([1, 1, 2, 3]));
3)注意点:Set结构不会添加重复的值
Set加入值得时候,不会发生类型的转换,5 和 ‘5‘是不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。
两个NaN是相等的 只能加入一个
let set3 = new Set();
let a = NaN;
let b = NaN;
set3.add(a);
set3.add(b);
console.log(set3);
两个对象是不相等的
let set4 = new Set();
set4.add({});
console.log(set4.size);
set4.add({});
console.log(set4.size);
原文:https://www.cnblogs.com/insignificant-malt/p/8550575.html
内容总结
以上是互联网集市为您收集整理的Set()--Es6新的数据结构全部内容,希望文章能够帮你解决Set()--Es6新的数据结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。