模拟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 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
[原创]站长必须要知道的javascript广告代码
May 30 Javascript
微博@符号的用户名提示效果。(想@到谁?)
Nov 05 Javascript
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
限制textbox或textarea输入字符长度的JS代码
Oct 16 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
简单实现异步编程promise模式
Jul 31 Javascript
node.js中fs文件系统目录操作与文件信息操作
Feb 24 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php生成excel列序号代码实例
2013/12/24 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
jquery实现动态画圆
2014/12/04 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
python3 拼接字符串的7种方法
2018/09/12 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
NET程序员上机面试题
2015/05/23 面试题
大学生职业生涯规划范文
2014/01/22 职场文书
办公室主任职责范本
2014/03/07 职场文书
大课间体育活动方案
2014/03/12 职场文书
教师自我剖析材料
2014/09/29 职场文书
民主生活会发言材料
2014/10/20 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
学雷锋感言
2015/08/03 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis