模拟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 String 的扩展方法集合
Jun 01 Javascript
JS中实现replaceAll的方法(实例代码)
Nov 12 Javascript
js中array的sort()方法使用介绍
Feb 20 Javascript
javascript实现table表格隔行变色的方法
May 13 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
May 25 Javascript
JavaScript对象学习小结
Sep 02 Javascript
微信小程序中input标签详解及简单实例
May 18 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
微信小程序实现点击效果
Jun 21 Javascript
JavaScript实现多文件下载方法解析
Aug 07 Javascript
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
Apr 03 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模板引擎Smarty的缓存使用总结
2014/04/24 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
js实现日历的简单算法
2017/01/24 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python解决字符串倒序输出的问题
2018/06/25 Python
Python @property使用方法解析
2019/09/17 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
门卫岗位职责
2013/11/15 职场文书
电脑教师的自我评价
2013/12/18 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书