set对象

作者: xinyiyake | 来源:发表于2020-03-27 11:01 被阅读0次

如何使用set对象

首先创建一个set对象

const mySet = new Set();

现在我们拥有了一个空的set对象,我们可以通过.add方法向其中添加一个一个数字1

mySet.add(1);

我们怎么知道向mySet中成功添加了1呢?可以通过.has方法

mySet.has(1); //true

我们再向mySet中添加一个对象,并且检查是否添加对象成功

const obj = { name: 'Daffodil' };
mySet.add(obj);
mySet.has(obj);//true

需要注意的是我们检查的是对象的引用,而不是对象自己的keys,换言之,下面的返回值就是false

mySet.has({ name: 'Daffodil' }); //false

我们可以通过.size方法知道mySet中有多少个元素

mySet.size;//2

我们可以通过.delete方法删除mySet中某个元素

mySet.delete(1);
mySet.has(1); // false

最后我们可以通过.clear方法清除mySet中所有元素

mySet.clear();
mySet.size; //0

对set对象进行遍历

  1. 最简单的遍历一个set对象的方法是使用forEach方法:
new Set([1, 2, 3]).forEach(el => {
  console.log(el * 2);
});
// 2 4 6
  1. 通过entries方法遍历
    entries() 方法返回一个新的迭代器对象 ,这个对象的元素是类似 [value, value] 形式的数组,value 是集合对象中的每个元素,迭代器对象元素的顺序即集合对象中元素插入的顺序。由于集合对象不像 Map 对象那样拥有 key,然而,为了与 Map 对象的 API 形式保持一致,故使得每一个 entry 的 key 和 value 都拥有相同的值,因而最终返回一个 [value, value] 形式的数组。
var mySet = new Set();
mySet.add("foobar");
mySet.add(1);
mySet.add("baz");

var setIter = mySet.entries();

console.log(setIter.next().value); // ["foobar", "foobar"]
console.log(setIter.next().value); // [1, 1]
console.log(setIter.next().value); // ["baz", "baz"]

效率说明

set对象和数组很像,但是它们之间的差异可能对 你的应用的性能产生影响,因为set对象是通过哈希表(或者具有类似哈希表效率的方法)来实现的。因此当您将某些东西存储在数组中时,可能必须遍历整个数组才能找到该项目,但是对于set对象,查询是瞬时的。
实际上,在大多数情况下,性能都可以忽略不计,但是如果您不得不跟踪大量数据的时候,可能使用set对象会比数组对象更好一点。

相关文章

  • es6 Set对象常用方法

    初始化Set对象 add: 往Set对象中追加元素 delete: 往Set对象中追加元素 has: 查找Set对...

  • es6 new Set

    Set 对象存储的值总是唯一的 Set 对象方法 方法 描述add 添加某个值,返回Set对象本身。...

  • 对象:Set

    ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函...

  • set对象

    1.概念 set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。返回一个新的Set对象 2.注意点 在...

  • Set对象

    set对象 可以是任何类型的单个值得集合,即值不会重复 setObj=new Set

  • set对象

    如何使用set对象 首先创建一个set对象 现在我们拥有了一个空的set对象,我们可以通过.add方法向其中添加一...

  • ES6基础之——new Set

    Set 对象存储的值总是唯一的 Set 对象方法方法 描述add 添加某个值,返回Set对象本身。clear ...

  • ES6新增-2:Set对象 / Map对象 / =>箭头函数

    Set对象 new Set([iterable]) Set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引...

  • vue中$set的用法

    $set用于更新数组: $set用于更新对象:

  • Java (集合 Set)

    Set集合中的内容不按特定的顺序排序,只是简单添加对象,不能包含重复的对象 **Set集合由 set类和set接口...

网友评论

      本文标题:set对象

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