zoukankan      html  css  js  c++  java
  • 模拟javascript中的sort排序

    一、javascript中sort对数据进行排序的原理

    sort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 可能不是稳定的。默认按照字符串的Unicode码位点排序;

    语法:arr.sort([compareFunction])

    参数 compareFunction
    可选。用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的诸个字符的Unicode位点进行排序。
    如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
    如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守
    如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
    1   //将数组中的元素按照从小大的顺序排列
    2  var arr=[11,55,22,45,16,87];
    3 
    4     arr.sort(function(a,b){
    5         return a-b;
    6     });
    7     console.log(arr);

    二、模拟javascript内部对数据进行排序的原理

     1 sortSelf(arr,function(a,b){
     2         return a-b;
     3     });
     4     console.log(arr);
     5 
     6  function sortSelf(array,fn){
     7         for (var i = 0; i < array.length-1; i++) {
     8             var isSorted=true;  //默认已经排好序
     9             for (var j = 0; j < array.length-1-i; j++) {
    10                 //调用函数
    11                 if(fn(array[j],array[j+1])>0){
    12                     //交换两个变量
    13                     var temp=array[j];
    14                     array[j]=array[j+1];
    15                     array[j+1]=temp;
    16                     isSorted=false;
    17                 }
    18             }
    19             if(isSorted){
    20                 break;
    21             }
    22         }
    23     }
  • 相关阅读:
    MSSQL Join的使用
    MSSQL2008 常用sql语句
    Process使用
    c# 多线程 调用带参数函数
    C# 多线程参数传递
    C# 单例模式代码
    C#调用存储过程
    页面布局
    构建:vue项目配置后端接口服务信息
    浏览器工作原理(二):浏览器渲染过程概述
  • 原文地址:https://www.cnblogs.com/lijinblogs/p/5582583.html
Copyright © 2011-2022 走看看