模拟数组的sort排序方法

 1 //为Object.prototype增加method方法,下次为对象添加方法不必键入prototype
 2     Object.prototype.method=function(name,func){
 3         if(!this.prototype[name]){
 4             this.prototype[name]=func;
 5             return func;
 6         }
 7     };
 8     //为数组添加rank排序方法
 9     Array.method("rank",function(f){
10         var t=0,
11             len=this.length;
12         //冒泡排序法
13         for(var i=0;i<len;i++){
14             for(var j=1;j<len;j++){
15                 if(f(this[j],this[j+1])>0){
16                    t=this[j];
17                    this[j]=this[j+1];
18                    this[j+1]=t;
19                 }
20             }
21         }
22         return this;
23     });
24     var data=[4,42,15,8,16,23,42];
25     var compare=function(a,b){
26         return a-b;
27     };
28     document.writeln(data.rank(compare));//4,8,15,16,23,42,42

为数组添加一个原生的Array.prototype.rank(f);给数组排序

时间: 2024-11-07 13:28:27

模拟数组的sort排序方法的相关文章

JavaScript中数组Array.sort()排序方法详解

JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字. 1.对数字数组进行由小到大的顺序进行排序. 代码: var arr = [22,12,3,43,56,47,4]; arr.sort();

数组Array.sort()排序的方法

数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较. 如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数a和b,其返回值如下

数组-去重、排序方法、json排序

1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=function(){ var newArr=[],obj={}; for(var i=0,len=this.length;i<len;i++){ if(!obj[this[i]]){ newArr.push(this[i]); obj[this[i]]=true; } } return newArr; } /

JS数组之重排序方法

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

JAVA Collections工具类sort()排序方法

主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static <T extends Comparable<? super T>> void sort(List<T> list) 说明:该方法中的泛型<T>都是Comparable接口的子类,即只有是Comparable接口子类类型的数据,才能进行比较排序.如果其他类型的数据要进行比较排序,必须继承Co

js数组的实例方法sort() 排序方法的运用,不再只是.sort()

1, sort() 不传回调函数的话,默认按照字母顺序(字符编码)的顺序进行排序. 2, sort() 通过传回调函数来控制从小到大的排序还是从大到小的排序: 1 var arr = [1,23,5,6,14,9,10]; 2 arr.sort((a,b)=>{ 3 if(a>b){ 4 return 1; 5 }else { 6 return -1; 7 } 8 }) 9 console.log(arr); 10 结果:[1, 5, 6, 9, 10, 14, 23] 从小到大 11 12

js数组中sort排序注意的地方

var a=[1,2,3,4,5] function sum(a,b) { return a-b } //从小到大 function obj(a,b) { return b-a } //从大到小 a.sort(sum(a,b)) 调用sort方法后,数组本身会被改变,即影响原数组 默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序

js数组的sort排序的原理和应用

1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值. 若 a 等于

js数组的sort排序详解

<body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="showBox"> 1.简单数组简单排序 <script type="text/javascript"> var arrSimple=new Array(1,8,7,6); arrSimple.sort(); document.writeln(arrSimple.join()); <