首页  >  文章  >  web前端  >  es6中set类型是不是有序的

es6中set类型是不是有序的

WBOY
WBOY原创
2022-04-08 18:37:453389浏览

es6中set类型是有序的。set类型是es6中新增的有序列表集合,其中包含了一些相互独立的非重复值;set的遍历顺序就是插入顺序,set保存的一个函数列表调用时,就是按照指定的顺序进行调用,因此set类型是有序的。

es6中set类型是不是有序的

本文操作环境:windows10系统、Vue2.9.6版,DELL G3电脑。

es6中set类型是不是有序的

是有序的,你可以在官方的Set找到答案,Set的遍历顺序就是插入顺序。

这个特性有时非常有用,比如使用 Set 保存一个回调函数列表,调用时就能保证按照添加顺序调用。

基本概念

ES6新增的Set类型是一种有序列表,其中含有一些相互独立的非重复值。

*成员之间是否重复,Set集合内部是通过Object.is() 方法进行判断。

Set 是 ES6 新增的有序列表集合,它不会包含重复项。之前我们通常用对象(Object)或者数组(Array)来实现没有重复项的集合。但对象会对 key 进行 toString() 操作,这会导致某些 key 会意外覆盖之前的数据;如果 key 本身是一个对象,toString() 也得不到想要的结果,如下:

JSvar o = {};
var key1 = 2;
var key2 = { toString : function() { return 2 } };
var key3 = { x : 1 };
var key4 = { y : 2 };
o[key1] = 1;
o[key2] = 2;
o[key3] = 3;
o[key4] = 4;
// o : Object {2: 2, [object Object]: 4}

数组可以存放任何类型的数据,不过数据除重需要自己实现。

Set 支持 add(item) 方法,用来向 Set 添加任意类型的元素,如果已经添加过则自动忽略;has(item) 方法用来检测 Set 中是否存在指定元素;delete(item) 方法用来从 Set 中删除指定元素;clear() 用来清空 Set;获取 Set 集合长度用 size 属性。如下:

JSvar set = new Set();
set.add(window);
set.has(window); // trueset.size; // 1set.add(window);
set.add(1);
set.size; // 2set.delete(window);
set.has(window); // falseset.clear();
set.size; // 0

20.png

【相关推荐:《vue.js教程》】

以上是es6中set类型是不是有序的的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn