模拟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 相关文章推荐
用一段js程序来实现动画功能
Mar 06 Javascript
jquery中eq和get的区别与使用方法
Apr 14 Javascript
Chrome Form多次提交表单问题的解决方法
May 09 Javascript
深入理解JavaScript系列(15) 函数(Functions)
Apr 12 Javascript
js设置组合快捷键/tabindex功能的方法
Nov 21 Javascript
jquery、js操作checkbox全选反选
Mar 12 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
Express的路由详解
Dec 10 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 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你的验证码安全码?
2007/01/02 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python 实现绘制整齐的表格
2019/11/18 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
python lambda的使用详解
2021/02/26 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
全球虚拟主机商:HostGator
2017/02/06 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
委托书范本
2014/04/02 职场文书
电影开国大典观后感
2015/06/04 职场文书
css3新特性的应用示例分析
2022/03/16 HTML / CSS
Redis过期数据是否会被立马删除
2022/07/23 Redis