模拟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跨域总结
Aug 30 Javascript
Js 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
Oct 16 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
Mar 01 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
微信小程序实现左侧滑栏过程解析
Aug 26 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 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 @ at 记号的作用示例介绍
2014/10/10 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
java解析json方法总结
2019/05/16 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
Python缩进和冒号详解
2016/06/01 Python
python 性能提升的几种方法
2016/07/15 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
Python之list对应元素求和的方法
2018/06/28 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
详解Python传入参数的几种方法
2019/05/16 Python
python中线程和进程有何区别
2020/06/17 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
企业文化建设实施方案
2014/03/22 职场文书
对孩子的寄语
2014/04/09 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
医院义诊活动总结
2014/07/04 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS