微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6 新增集合----- Set 和Map

  Sets 和数组一样,都是一些有序值的的集合,但是Sets 和数组又有所不同,首先Sets 集合中不能存有相同的值,如果你向Sets 添加重复的值,它会忽略掉, 其次Sets 集合的作用也有所不同,它的主要作用一是存储数据,二是在于看一个值是不是在集合中,而不是对单个值进行操作,Sets 的查找更快。那怎样才能创建一个Sets, 使用new  Set(); 怎样才能添加值呢? 调用add() 方法

let set = new Set();
set.add(1);
set.add(2);

set.add({
    name: 'sam'
})

  刚才我们说了,Sets 集合中不能添加重复的值,如果添加了,Sets 也会把它忽略掉,现在就可以试一试了,添加一个1,

let set = new Set();
set.add(1);
set.add(2);

set.add({
    name: 'sam'
})
set.add(1)

  那我们怎么才能知道有没有添加到set中呢? 它又一个size属性,可以返回集合中又多少个元素, 

console.log(set.size)  // 3

  set 中只要3个元素, 表明没有添加成功, 直接console.log(set), 也能看出它里面的包含的值。那这又引出了例外一个问题,Sets 集合是怎么判断两个值是重复或相等呢?内部调用的是Object.is() 方法判断相等性

  除了调用add() 方法添加数据外,我们也可以创建Sets 的时候,直接进行初始化。new Set() 可接受数组作为参数,如果数组中有重复的值,初始化的时候直接过滤掉。

let set = new Set([1, 1, 2, 3, 3]);
console.log(set.size) // 3

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐