模拟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 object array方法使用详解
Dec 03 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
node.js文件上传处理示例
Oct 27 Javascript
详解jQuery中基本的动画方法
Dec 14 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
Feb 22 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
Apr 17 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
Express结合Webpack的全栈自动刷新
May 23 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
关于Js中new操作符的作用详解
Feb 21 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
一个程序下载的管理程序(四)
2006/10/09 PHP
基于mysql的论坛(2)
2006/10/09 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
Vue.js render方法使用详解
2017/04/05 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
django认证系统 Authentication使用详解
2019/07/22 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
小学端午节活动方案
2014/03/13 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
低碳环保倡议书
2014/04/14 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2014年销售员工作总结
2014/12/01 职场文书
大连星海广场导游词
2015/02/10 职场文书
单位政审意见范文
2015/06/04 职场文书
名人传读书笔记
2015/06/26 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
python获取字符串中的email
2022/03/31 Python