zoukankan      html  css  js  c++  java
  • 最实用的数组去重方法

    1. 数组元素全部是原始类型

    实用Set数据结构进行去重;因为Set数据结构本身要求值唯一。

    [...new Set(arr)]
    // 或者
    Array.from(arr)

    而且该方法中+0/-0认为是同一个值;NaN等于自身,被去重。

    示例:

    // 对于数字,布尔值,字符串,null, undefined,NaN, +0,-0都可以去重
    [...new Set([1,1,true,true,'1','1',+0,-0,NaN, NaN, null, null, undefined, undefined])]
    // [1,true,'1',0,NaN,null,undefined]

    而任何两个对象都不相同,因为储存地址不同。不能通过Set结构去重。

    因为,数组、函数、正则表达式、Date对象等都是特殊形式的对象,所以也不能被去重。

    [...new Set([/a/, /a/])]; //[/a/,/a/]
    const date = new Set([new Date('2019-09-09'), new Date('2019-09-09')]) // data.size=2
    [...new Set([[1], [1]])]; // [[1], [1]]
    [...new Set([function(){}, function(){}])]; // [f,f]
  • 相关阅读:
    既然选择了远方,就只顾风雨兼程!
    slots
    面向对象
    模块和作用域
    偏函数
    python中decorator
    返回函数
    filter, sort
    map/reduce
    开发步骤
  • 原文地址:https://www.cnblogs.com/lyraLee/p/11808992.html
Copyright © 2011-2022 走看看