模拟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使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
使用js正则控制input标签只允许输入的值
Jul 29 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
JavaScript中for-in遍历方式示例介绍
Feb 11 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
微信小程序 scroll-view 实现锚点跳转功能
Dec 12 Javascript
2019最新21个MySQL高频面试题介绍
Feb 06 Javascript
javascript递归函数定义和用法示例分析
Jul 22 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环境――Appserv
2006/12/13 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP中header用法小结
2016/05/23 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
nodejs简单实现操作arduino
2016/09/25 NodeJs
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python中偏函数用法示例
2018/06/07 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python3的socket使用方法详解
2020/02/18 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
学校后勤工作总结2015
2015/05/15 职场文书
小平您好观后感
2015/06/09 职场文书
学生病假条怎么写
2015/08/17 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis