zoukankan      html  css  js  c++  java
  • JavaScript 数组去重方法总结

    1.遍历数组法: 这应该是最简单的去重方法(实现思路:新建一新数组,遍历数组,值不在新数组就加入该新数组中)

    // 遍历数组去重法
    function unique(arr){
     var _arr = []
     //遍历当前数组
     for(var i = 0; i < arr.length; i++){
     //如果当前数组的第i已经保存进了临时数组,那么跳过,
     //否则把当前项push到临时数组里面
     if (_arr.indexOf(arr[i]) == -1) _arr.push(arr[i])
     }
     return _arr
    }

    注意点:indexOf 为 ES5 的方法,注意浏览器兼容,需要自己实现 indexOf 

    2.对象键值对(hash) 法:速度快,高效,占用更大的内存换取更快的时间,用 JavaScript 中的 Object 对象来当做哈希表,hash去重的核心是构建了一个 hash 对象来替代 indexOf

    // hash 去重法
    function unique(arr){
      var _arr = [], 
      hash = {}
      for (var i = 0; i < arr.length; i++) {
           var item = arr[i]
           var key = typeof(item) + item
           // 对象的键值只能是字符串, typeof(item) + item来去分1和'1'的情况
           if(hash[key] !== 1){
               _arr.push(item)
               hash[key] = 1
          }
       }
        return _arr
    }

    3.炫酷的 es6 Set数据结构: ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值

    function unique(arr){
         return Array.from(new Set(arr))
         // Array.from方法用于将两类对象转为真正的数组:
         // 类似数组的对象(array-like object)和可遍历(iterable)的对象
    }

    关于 JavaScript 数组去重,还有很多很多,这里介绍了几种常规的,更多的自己去探索!

  • 相关阅读:
    SDN——实验脚本4-1:ovsSingleBr.py
    SDN——实验脚本4-2:ovsMultiBr.py
    SDN——实验脚本4-3:ovsVLAN.py
    C语言I博客作业01
    C语言I作业09
    C语言I作业08
    C语言I作业07
    C语言I作业06
    C语言I作业05
    C语言I博客作业04
  • 原文地址:https://www.cnblogs.com/qcxc/p/6933299.html
Copyright © 2011-2022 走看看