模拟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 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
利用vue写todolist单页应用
Dec 15 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
Jan 05 Javascript
几行js代码实现自适应
Feb 24 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
Oct 25 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
jQuery实现弹幕特效
Nov 29 jQuery
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中new static() 和 new self() 的区别介绍
2015/01/09 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python中zip和unzip数据的方法
2015/05/27 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python 加密的实例详解
2017/10/09 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python笔记之代理模式
2019/11/20 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
煤矿班组长竞聘书
2014/03/31 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
小学假期安全广播稿
2014/09/28 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL