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

    1、双for去重

    Array.prototype.Duplicate = function() {
        let arr = this;
        for(let i = 0; i < arr.length-1; i++) {
          for (let j = i+1; j < arr.length; j++) {
              if (arr[i] == arr[j]) {
                  arr.splice(j, 1);
                  j--;  // 删除元素之后,需要将数组的长度也减1,否则无法去除掉后面相同的值.
              };
          };
        };
        return arr;
    }

    2、利用递归去重

    Array.prototype.Duplicate = function() {
        let arr = this;
        arr.sort();
        function loop(index) {
            if (index > 1) {
                if (arr[index] == arr[index-1]) {
                    arr.splice(index, 1);
                };
                loop(index-1);
            };
        };
        loop(arr.length-1);
        return arr;
    }

    3、利用对象去重

    Array.prototype.Duplicate = function() {
        let arr = this;
        let obj = {}
        let arr2 = []
        for (let i = 0; i < arr.length; i++) {
            if (!obj[arr[i]]) {
                obj[arr[i]] = true;
                arr2.push(arr[i]);
            }
        };
        return arr2;
    }

    4、利用indexOf

    Array.prototype.Duplicate = function() {
        let arr = this;
        let arr2 = []
        for (let i = 0; i < arr.length; i++) {
            if (arr2.indexOf(arr[i]) == -1) {
                arr2.push(arr[i]);
            }
        };
        return arr2;
    }

    5、利用es6 includes方法判断

    Array.prototype.Duplicate = function() {
        let arr = this;
        let arr2 = [];
        for (let i = 0; i < arr.length; i++) {
            if (!arr2.includes(arr[i])) {
                arr2.push(arr[i]);
            }
        }
        return arr2
    }
  • 相关阅读:
    线性dp打鼹鼠
    区间dp(能量项链)
    留言板
    友链
    CodeForces 1270I Xor on Figures
    agc020_d Min Max Repetition
    Codeforces 1270G Subset with Zero Sum
    CodeForecs 1270E Divide Points
    MybatisPlus学习笔记10:公共字段自动填充
    MybatisPlus学习笔记9:自定义全局操作
  • 原文地址:https://www.cnblogs.com/fly9/p/11571085.html
Copyright © 2011-2022 走看看