zoukankan      html  css  js  c++  java
  • JavaScript -- 去重的几种简单好记的方法

    去重(性能由高到低)

    一、New Set()

    let arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
    function unique(arr) {
        return Array.from(new Set(arr));
    }
    console.log(unique(arr));// [1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]

     

    二、Array.sort()

    function unique(arr) {
        arr = arr.sort();
        let array = [arr[0]];
        for (let i = 1; i < arr.length; i++) {
            if (arr[i] !== arr[i-1]) {
                array.push(arr[i]);
            }
        }
        return array;
    }
    console.log(unique(arr));//[0, 1, 15, NaN, NaN, "NaN", {…}, {…}, "a", false, null, "true", true, undefined]

    三、Array.indexOf()

    function unique(arr) {
        let array = [];
        for (let i = 0; i < arr.length; i++) {
            if (array.indexOf(arr[i]) === -1) {
                array.push(arr[i]);
            }
        }
        return array;
    }
    console.log(unique(arr));//[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

     

    四、双重for循环

    function unique(arr) {
        for (let i = 0; i < arr.length; i++) {
            for (let j = i+1; j < arr.length; j++) {
                if (arr[i] === arr[j]) {
                    arr.splice(j, 1);
                    j--;
                }
            }
        }
        return arr;
    }
    console.log(unique(arr)); //[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

     

  • 相关阅读:
    Redis-内存优化(一)
    window激活
    ArrayDeque原理详解
    CountDownLatch原理详解
    DelayQueue延迟队列原理剖析
    浅析PriorityBlockingQueue优先级队列原理
    修改QT库的路径
    数据同步Datax与Datax_web的部署以及使用说明
    HTTP头的Expires与Cache-control
    python生成随机数、随机字符串
  • 原文地址:https://www.cnblogs.com/yanghana/p/13569979.html
Copyright © 2011-2022 走看看