模拟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 相关文章推荐
JQuery 前台切换网站的样式实现
Jun 22 Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
JS 使用 window对象的print方法实现分页打印功能
May 16 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
js事件触发操作实例分析
Jun 21 Javascript
vue使用echarts画组织结构图
Feb 06 Vue.js
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使用内置dir类实现目录遍历删除
2015/03/31 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
详解a++和++a的区别
2017/08/30 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python查看微信好友是否删除自己
2016/12/19 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Python读取csv文件实例解析
2019/12/30 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
人事专员的职责
2014/02/26 职场文书
本科毕业生自荐信
2014/06/02 职场文书
专科生就业求职信
2014/06/22 职场文书
财务务虚会发言材料
2014/10/20 职场文书
计划生育工作汇报
2014/10/28 职场文书
2014企业年终工作总结
2014/12/23 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书