美文网首页
常用数组去重

常用数组去重

作者: black白先森 | 来源:发表于2016-10-06 15:28 被阅读14次
  1. 数组去重方式
//数组去重
function unique(arr){
    var ret=[];
    for (var i = 0; i < arr.length; i++) {
        var tmp=arr[i];
        if(ret.indexOf(tmp)===-1){
            ret.push(tmp);
        }
    }
}
Array.prototype.unique1 = function () {
          var n = []; //一个新的临时数组
          for (var i = 0; i < this.length; i++) //遍历当前数组
          {
            //如果当前数组的第i已经保存进了临时数组,那么跳过,
            //否则把当前项push到临时数组里面
            if (n.indexOf(this[i]) == -1) n.push(this[i]);
          }
          return n;
        }
Array.prototype.unique2 = function()
        {
            var n = {},r=[]; //n为hash表,r为临时数组
            for(var i = 0; i < this.length; i++) //遍历当前数组
            {
                if (!n[this[i]]) //如果hash表中没有当前项
                {
                    n[this[i]] = true; //存入hash表
                    r.push(this[i]); //把当前数组的当前项push到临时数组里面
                }
            }
            return r;
        };
  1. 快速排序
//快速排序
function quicksort(arr){
    var index,left=0,right=arr.length-1;
    if(arr.length>1){
        index=partition(arr,left,right);
        console.log(index);
        if(left<index-1){
            quickSort(arr,left,index - 1);
        }
        if(index <right){
            quickSort(arr,index,right);
        }
    }
}
function partition(items,left,right){
    var pivot=items[Math.floor((right+left)/2)];
    i=left;
    j=right;
    while(i<=j){
        while(items[i]<pivot){
            i++;
        }
        while(items[j]>pivot){
            j--;
        }
        if(i<=j){
            swap(items,i,j);
            i++;
            j--;
        }
    }
    return i;

}
function swap(items,firstIndex,secondIndex){
    var temp=items[firstIndex];
    items[firstIndex]=items[secondIndex];
    items[secondIndex]=temp;
}

相关文章

  • 数组

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

  • 常用数组去重

    数组去重方式 快速排序

  • 数组去重

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

  • JavaScript数组去重

    JavaScript中数组的常用操作之数组去重 方法一 方法二

  • 数组去重

    去重 数组去重常用的方法 1.双循环去重 2.indexOf 去重 3.indexOf()去重 4.利用对象属性去重

  • JavaScript常用代码总结

    常用代码总结 创建 0~N 的数组: 数组去重 数据类型判断 数值取整

  • 数组去重的几种方法

    数组去重的几种方法 ES6 Set去重(ES6常用) -不修改原数组 不考虑兼容性,这种去重的方法代码最少。这种方...

  • 关于数组

    数组的创建 数组的小方法 常用方法 1、清空一个数组 2、删除数组中的偶数 3、数组去重

  • 数组方法小结

    数组的创建 数组的小方法 常用方法 1、清空一个数组 2、删除数组中的偶数 3、数组去重

  • Array集结号

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

网友评论

      本文标题:常用数组去重

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