zoukankan      html  css  js  c++  java
  • js 数组去重

    /*
     * @Author: Mr.live 
     * @Date: 2018-01-23 15:12:45 
     * @Last Modified by: Mr.live
     * @Last Modified time: 2018-01-23 15:40:28
     */
    // 数组去重
    var arr=[1,2,3,2,33,44,44,2]
    // 1)对象存放,哈希算法(映射)判断
    function unique(arr) {
      // n为hash表,r为临时数组
      var n = {}, r = [];
      for (var i = 0; i < arr.length; i++) {
          // 如果hash表中没有当前项
          if (!n[arr[i]]) {
              // 存入hash表
              n[arr[i]] = true;
              // 把当前数组的当前项push到临时数组里面
              r.push(arr[i]); 
          }
      }
      return r;
    }
    
    // 2) 新语法结构去重
    // es5简化版
    Array.prototype.unique1 = function() {
      return this.filter((v, i) => this.indexOf(v) === i)
    }
    // es6简化版
    Array.prototype.unique2 = function() {
      return Array.from(new Set(this));
    }
    //
    Array.prototype.unique3 = function() {
      return [...new Set(this)];
    }
    
    
    // 3)使用数组的indexOf()方法可以很简单的达到目的。
    var arr2 = [ 1, 2, 1, 2, '1', '11'];
    function unique4(arr) {
      // 创建一个新的临时数组,用于保存输出结果
      var n = []; 
      // 遍历当前数组
      for (var i = 0; i < arr.length; i++) {
          // 如果当前数组的第i个元素已经保存进了临时数组,那么跳过,否则把当前项push到临时数组里面
          if (n.indexOf(arr[i]) == -1) n.push(arr[i]);
      }
      return n;
    }
    
    console.log(unique4(arr2))
  • 相关阅读:
    1,JAVA图形
    作业(2)
    作业(1)
    作业
    2.15 (第二次作业)
    60页2.6 (第二次作业)
    1.12 (第一次作业)
    27页1.8(第一次作业)
    26页1.3(第一次作业)
    作业第六次
  • 原文地址:https://www.cnblogs.com/xzma/p/8336225.html
Copyright © 2011-2022 走看看