模拟javascript中的sort排序(简单实例)


Posted in Javascript onAugust 17, 2016

一、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 之前。

//将数组中的元素按照从小大的顺序排列
 var arr=[11,55,22,45,16,87];

  arr.sort(function(a,b){
    return a-b;
  });
  console.log(arr);

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

sortSelf(arr,function(a,b){
    return a-b;
  });
  console.log(arr);

 function sortSelf(array,fn){
    for (var i = 0; i < array.length-1; i++) {
      var isSorted=true; //默认已经排好序
      for (var j = 0; j < array.length-1-i; j++) {
        //调用函数
        if(fn(array[j],array[j+1])>0){
          //交换两个变量
          var temp=array[j];
          array[j]=array[j+1];
          array[j+1]=temp;
          isSorted=false;
        }
      }
      if(isSorted){
        break;
      }
    }
  }

以上这篇模拟javascript中的sort排序(简单实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript打印网页指定区域的例子
May 03 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
js获取滚动距离的方法
May 30 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
基于webpack 实用配置方法总结
Sep 28 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
vue实现节点增删改功能
Sep 26 Javascript
js Math数学简单使用操作示例
Mar 13 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
Sep 12 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 #Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 #Javascript
BOM系列第二篇之定时器requestAnimationFrame
Aug 17 #Javascript
AngularJS 视图详解及示例代码
Aug 17 #Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 #Javascript
AngularJS Ajax详解及示例代码
Aug 17 #Javascript
AngularJS包括详解及示例代码
Aug 17 #Javascript
You might like
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
PHP发送短信代码分享
2015/08/11 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
python调用百度REST API实现语音识别
2018/08/30 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
python动态视频下载器的实现方法
2019/09/16 Python
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
校园之声广播稿
2014/01/31 职场文书
八一建军节活动方案
2014/02/10 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
乳制品整治工作方案
2014/05/29 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
小学四年级学生评语
2014/12/26 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫