模拟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中的有名函数和无名函数
Oct 17 Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
Oct 11 Javascript
Javascript动画的实现原理浅析
Mar 02 Javascript
基于javascript实现图片预加载
Jan 05 Javascript
javascript实现起伏的水波背景效果
May 16 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
Aug 16 Javascript
vue实现商城上货组件简易版
Nov 27 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
js逆向解密之网络爬虫
May 30 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 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+mysql分页代码详解
2008/03/27 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
Vue实现简易计算器
2020/02/25 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
python中list循环语句用法实例
2014/11/10 Python
python ---lambda匿名函数介绍
2019/03/13 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
Python内置加密模块用法解析
2019/11/25 Python
Python 定义只读属性的实现方式
2020/03/05 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
创伤外科专业推荐信范文
2013/11/19 职场文书
物流仓储计划书
2014/01/10 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
企业财务管理制度范本
2015/08/04 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL