模拟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中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
jQuery控制frames及frame页面JS的方法
Mar 08 Javascript
JS原生带小白点轮播图实例讲解
Jul 22 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
Oct 12 Javascript
Angular5中调用第三方js插件的方法
Feb 26 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
微信小程序实现弹框效果
May 26 Javascript
Vue深入理解插槽slot的使用
Aug 05 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
改造一台复古桌面收音机
2021/03/02 无线电
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
create-react-app中添加less支持的实现
2019/11/15 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
django+js+ajax实现刷新页面的方法
2017/05/22 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python玩转Excel的读写改实例
2019/02/22 Python
python相对企业语言优势在哪
2020/06/12 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
python中pow函数用法及功能说明
2020/12/04 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
主管职责范文
2013/11/09 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
撤诉书怎么写
2015/05/19 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers