zoukankan      html  css  js  c++  java
  • 知识巩固——数组去重、排序

    var arr=[2,3,2,44,33,3,88,13,'2'];

    //遍历数组法
    Array.prototype.unique1=function(){
        var start=new Date().getTime();console.log(start);
        var n=[];
        for(var i=0,l=arr.length;i<l;i++){
            if(n.indexOf(arr[i])==-1){
                n.push(arr[i]);
            }
        }
        var end=new Date().getTime();console.log(end);
        var time=end-start;console.log(time);
        return n;
    }
    //var x=arr.unique1();console.log(x);// [2, 3, 44, 33, 88, 13,'2']
    //对象键值对法
        //时间快,空间换时间,占内存大
    Array.prototype.unique2=function(){
        var start=new Date().getTime();console.log(start);
        var n = {}, r = [],  val, type; 
        for (var i = 0,len=arr.length; i < len; i++) { 
            val = arr[i]; 
            type = typeof val; 
            if (!n[val]) { 
                n[val] = [type]; 
                r.push(val); 
            } else if (n[val].indexOf(type) < 0) { 
                n[val].push(type); 
                r.push(val); 
            } 
        } 
        var end=new Date().getTime();console.log(end);
        var time=end-start;console.log(time);
        return r;
    }
    //var x=arr.unique2();console.log(x);
    //数组下标判断
    Array.prototype.unique3=function(){
        var n=[arr[0]];
        for(var i=1,l=arr.length;i<l;i++){
            if (arr.indexOf(arr[i]) == i) n.push(arr[i]); 
        }
        return n;
    }
    //var x=arr.unique3();console.log(x);
    //排序后相邻去除法
    Array.prototype.unique4=function(){
        arr.sort();
        var n=[arr[0]]
        for(var i=0,l=arr.length;i<l;i++){
            if(arr[i]!==n[n.length-1]){
                n.push(arr[i]);
            }
        }
        return n;
    }
    //var x=arr.unique4();console.log(x);

    兼容ie8以下 indexOf函数

    if (!Array.prototype.indexOf){ 
        // 新增indexOf方法 
        Array.prototype.indexOf = function(item){ 
            var result = -1, a_item = null; 
            if (this.length == 0){ 
                return result; 
            } 
            for(var i = 0, len = this.length; i < len; i++){ 
                a_item = this[i]; 
                if (a_item === item){ 
                    result = i; break; 
                } 
            } 
            return result; 
        } 
    } 

    数组排序

      冒泡

    var arr=[12,3,5,12,15,9,1];
    Array.prototype.bubble=function(){
        var l=this.length,d;
        for(var i=0;i<l;i++){
            for(var j=0;j<l;j++){
                if(arr[i]<arr[j]) arr[i]=[arr[j],arr[j]=arr[i]][0];
            }
        }
        return arr;
    }

      希尔

    111111111111

  • 相关阅读:
    20170417列表的count计数、index、reverse、sort函数
    (一)grpc-创建一个简单的grpc 客户端和服务器
    通用装饰器
    Git学习(一):Git介绍、仓库和分支等基本概念解释
    APP测试
    接口测试用例设计
    笔记整理
    接口测试
    gzip -压缩与解压缩
    declare 命令 -声明shell 变量
  • 原文地址:https://www.cnblogs.com/hhweb/p/7217265.html
Copyright © 2011-2022 走看看