模拟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中的私有成员
Sep 18 Javascript
Javascript isArray 数组类型检测函数
Oct 08 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
js选择器全面解析
Jun 27 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
使用async-validator编写Form组件的方法
Jan 10 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
微信小程序实现签到功能
Oct 31 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
php下使用无限生命期Session的方法
2007/03/16 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python实现名片管理系统
2020/02/14 Python
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
司机岗位职责
2015/02/04 职场文书
2016春节慰问信范文
2015/03/25 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
恋恋笔记本观后感
2015/06/16 职场文书