码迷,mamicode.com
首页 > 编程语言 > 详细

Set以及数组去重

时间:2019-12-03 01:58:54      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:键值对   类型   ==   相等   方法   特性   结构   去重   sam   

特点

  • Set本身是一个构造函数,用来生成Set数据结构
  • Set 类似于数组,里面的成员都是==唯一==的,没有重复的值,通过add方法向Set结构加入成员
  • 向Set加入值的时候,不会发生类型转换,Set内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,类似于===,主要的区别是NaN等于自身,而===认为NaN不等于自身。
  • 在Set内部,两个NaN是==相等==的
  • 两个对象总是==不相等==的

Set实例的属性和方法

1. 属性

  • Set.prototype.constructor
  • Set.prototype.size

2. 方法

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

遍历操作

遍历操作(Set的遍历顺序就是插入顺序),由于Set结构没有键名,只有键值,所以keys方法和values方法的行为完全一致

  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回键值对的遍历器
  • forEach():使用回调函数遍历每个成员

Set结构的默认遍历器是values方法

数组去重

利用Set的特性(Set成员唯一性)可以简单实现数组去重

1. Array.from与Set结合去重

Array.from方法可以将Set结构转为数组

function dedupe(array) {
    return Array.from(new Set(array));
}
console.log(dedupe([1, 1, 2, 3])); // 输出[ 1, 2, 3 ]

2. 扩展运算符(...)与Set结合去重

扩展运算符与Set结构相结合,可以去除数组的重复成员

function dedupe(array) {
    return [...(new Set(array))];
}
console.log(dedupe([1, 1, 2, 3])); // 输出[ 1, 2, 3 ]

Set以及数组去重

标签:键值对   类型   ==   相等   方法   特性   结构   去重   sam   

原文地址:https://www.cnblogs.com/let423/p/11974185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!