模拟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 相关文章推荐
编辑浪子版表单验证类
May 12 Javascript
javascript实现的网页局布刷新效果
Dec 01 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
防止登录页面出现在frame中js代码
Jul 22 Javascript
使用AOP改善javascript代码
May 01 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
May 17 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
webpack v4 从dev到prd的方法
Apr 02 Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 Javascript
JavaScript实现简单动态表格
Dec 02 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
Prototype Function对象 学习
2009/07/12 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python装饰器用法实例分析
2019/01/14 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
英语专业推荐信
2013/11/16 职场文书
中学生自我评价范文
2014/02/08 职场文书
酒店管理求职信
2014/06/09 职场文书
小学远程教育工作总结
2015/08/13 职场文书
护理自荐信
2019/05/14 职场文书