自己写的数组排重+排序

var a = [11,2,3,4,5,7,8,4,33,2,6];

Array.prototype.sorts = function(){
    var $this = this, i=1,
        arrays = $this.sort(function(a,b){return (a-b)>0}),
        len = arrays.length;

    if(len<2) return arrays;
    while(i < len){
        if(arrays[i] == arrays[i-1]){
            len--;
            arrays.splice(i,1);
        }else{
            i++;
        }
    }
    return arrays;
}

a.sorts();

初衷是尽可能的减少循环次数。

时间: 2024-08-25 08:07:45

自己写的数组排重+排序的相关文章

数组排重

1 function pass(arr){ 2 var result=arr.filter(function(item,i){ 3 return arr.indexOf(item)==i; 4 }) 5 return result; 6 } 7 console.log(pass([0,1,2,1,3,5,2,2,2,'2','5']));//结果[0, 1, 2, 3, 5, "2", "5"] 利用数组的indexOf方法的特点,indexOf只要找到要查找项的索

JavaScript基础之数组的重排序

JavaScript基础之数组的重排序 数组(Array)算是继Object之后我们最常用到的类型了.与其他语言不同的是,javascript数组的每一项可以保存任何类型的数据,并且数组的大小是可以动态调整的. JavaScript已经为我们提供了两个数组重排序的方法,reverse()和sort() 方法. 其中reverse()方法会反转数组项的顺序.举个栗子: var values = [18,4,56,1,"a","b","abc"];

JS数组之重排序方法

重排序方法 1. reserve() 反转 反转数组中元素的顺序. 2. sort() 重排序(默认升序) sort()方法可以对数组中的每一个元素进行排序,但是问题来了,即便数组元素全部都是数值类型,此方法依然会将所有元素先转换成字符串再进行升序排序. 因此,为了解决这个问题,sort()方法允许传入一个比较函数作为参数,实现升序或者降序. var arr = [0, 1, 5, 10, 15]; // reserve()反转. sort()升序(小 => 大) console.log(arr

php数组排重

数组中重复项的去除 2010-07-28 15:29 一维数组的重复项: 使用array_unique函数即可,使用实例如下: <?php                   $aa=array("apple","banana","pear","apple","wail","watermalon");                   $bb=array_unique($aa);

javascript 数组排重

注:以下的方法都是来自前人的贡献和分享.我也是抛砖引玉.顺便提高一下自己的记忆力. Array.prototype.removeByValue = function(val) { for(var i=0; i<this.length; i++) { if(this[i] == val) { this.splice(i, 1); break; } }} 删除数组里面指定的数组. 调用方法: endData.removeByValue("3"); ------------------

强大的 数组排重

function going_load(){ net.ajax({ url:"going", data : { num:going_num }, success:function(data){ var _data = data.data, cur_data = [] _data.forEach(function (v,k){ var cur_id = v.id; if (!goingList['id_'+cur_id]){ goingList.push(v); goingList['i

数组重排序方法

今天在复习的过程中,发现自己对数组的重排序方法sort()一直存在一个误区,重新捋顺,在此记录... 数组中存在两个可以直接用来重排序的方法:reverse()和sort(),reverse()方法就是反转数组项的顺序.在默认情况下,sort()方法按升序排列数组项,在这个过程中sort方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,然后确定排序.之前一直没有注意到这一点,一直以为调用sort()方法过后会直接对一个数组进行正确排序,其实并不是这样,而是对得到的字符串进

java内存模型之重排序

1.重排序 在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序.重排序分三种类型: 1.编译器优化的重排序.编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序. 2.指令级并行的重排序.现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ILP)来将多条指令重叠执行.如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序. 3.内存系统的重排序.由于处理器是使用缓存和读/写缓冲区,这使得加载和存储操作看上去可能是乱序执行.

理解并发编程中的重要概念:指令重排序和指令乱序执行

看过了很多介绍指令重排序的文章,可惜由于自己硬件和计算机理论知识缺乏,很难理解深层次的奥秘和实现原理.不过也有很多帖子,讲的浅显易懂,使用的例子很形象.大牛就是能用简单的解释和通俗的比喻,给我们讲明白很高深的东西.这里做个摘抄和总结,和大家分享下,希望大家能够对指令重排序有个形象的认识,不至于在并发编程中犯一些简单的错误.如果理解有错误,希望看到的大神指正. 从源码变成可以被机器(或虚拟机)识别的程序,至少要经过编译期和运行期.重排序分为两类:编译期重排序和运行期重排序(乱序执行),分别对应编译