美文网首页
数组去重方法

数组去重方法

作者: Sachie | 来源:发表于2017-07-11 15:58 被阅读0次

#数组去重方法

var a = [1111,1112,1113,1111122,1113,1112,1113,1114,511,611,711,833,933,711,833,933,330];

输出  [1111, 1112, 1113, 1111122, 1114, 511, 611, 711, 833, 933, 330];

(N为循环执行次数,T为所消耗时间)

1.使用Set + Array

function uniqueArray(arr){    

   return Array.from(new Set(arr));

}

对于N = 100/1000/10000  T = 124ms/650ms/5508ms

2.使用splice

function uniqueArray(arr){    

   for(var i = 0; i < arr.length - 1; i++){        

       for(var j = i + 1; j < arr.length; j++){            

             if(arr[j] === arr[i]){              

                    arr.splice(j--, 1);          

               }        

          }  

    }    

   return arr;

}

对于N = 100/1000/10000  T = 116ms/594ms/5079ms

3.只用Array

function uniqueArray(arr){  

   var retArray = [];    

   for(var i = 0; i < arr.length; i++){      

        if(retArray.indexOf(arr[i]) < 0){

            retArray.push(arr[i]);      

        }    

   }    

   return retArray;

}

对于N = 100/1000/10000  T = 103ms/613ms/4894ms

4.先排序

function uniqueArray(a) {

   a.sort();    

   var res = [a[0]];    

   for(var i = 1; i < a.length; i++){        

        if(a[i] !== res[res.length - 1]){

              res.push(a[i]);      

         }    

     }

   return res;      

}

对于N = 100/1000/10000  T = 119ms/794ms/5100ms

5.利用json(推荐)

function uniqueArray(a) {  

   var hash = {},result = [];    

   for (var i = 0; i < a.length; i++){        

       if (!hash[a[i]]){            

           hash[a[i]] = true;            

           result.push(a[i]);      

        }  

    }

  return result;

}

对于N = 100/1000/10000  T = 105ms/586ms/5112ms

##測試時間

var start = new Date().getTime();

var a = [1111,1112,1113,1111122,1113,1112,1113,1114,511,611,711,833,933,711,833,933,330];

function uniqueArray(arr){

   return Array.from(new Set(arr));

}

for (var i = 0; i < 10000; i++) {

   uniqueArray(a)

   console.log(uniqueArray(a))

}

var end = new Date().getTime();

console.log(end - start);

document.write(end - start)

相关文章

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • 数组去重方法

  • 数组去重方法

    const array = [1, 2, 3, '1', true, 'true', 9, 1, true] 使用...

网友评论

      本文标题:数组去重方法

      本文链接:https://www.haomeiwen.com/subject/cddmhxtx.html