现在在学习javascript中,发现sort()函数是有点奇怪的东西(可能是本人水平的问题-_-!),于是就在这里记录一下自己找到的东西吧。sort()这个方法的参数很奇怪,必须是函数,但也是可选参数,如果没有参数的话,就会默认以字符串的字典顺序来排列(就算是数值,也会被转化为字符串来处理)。这个参数是要能够比较两个值的大小,如:

function sortNumber(a, b){
   return a - b; //这里返回的是他们的差值,如果是小于0的值,就会将a排在前面,如果大于0,就会将b排在前面,如果是0的话,就随便。(冒泡排序法!!)
}

应用如下(这个例子太经典了!!):

<script type="text/javascript">
function sortNumber(a,b){return a - b}
var arr = new Array(3)
arr[0] = "10";
arr[1] = "5";
arr[2] = "4";
document.write(arr + "<br />");
document.write(arr.sort(sortNumber));
</script>

那么原本是10,5,4的排列就会变成4,5,10.这里说明一下这个过程,明明sortNumber应该是有两个参数,但是我们在调用时却一个参数都没有,怎么进行比较啊?这里是这样的,当arr从第一个数开始调用sort时,10前面是没有数与它比较的,所以就到第二个,就是5,这时10就会与5比较,于是就会调用sortNumber并将10和5传进去,这是sort()的特性。

最新文章

  1. 关于TCP中的MSS
  2. 串口计时工具Grabserial简介及修改(添加输入功能)
  3. 【读书笔记】iOS网络-错误处理的经验法则
  4. 【USACO 1.3】Barn Repair
  5. 使用Proj.Net创建空间参考
  6. Linux之sed命令详解
  7. Java数据库连接关闭后无法启动
  8. c#窗体的传值方法
  9. Linux下,命令 wget 的使用
  10. iOS开发笔记 基于wsdl2objc调用asp.net WebService
  11. Python之三层菜单
  12. 关于方法的ref
  13. Java进阶(七)正确理解Thread Local的原理与适用场景
  14. 掌握SQLServer锁的相关概念
  15. Angular Material 白天模式和黑夜模式
  16. FL Studio里的常规设置介绍
  17. LeetCode 24. Swap Nodes in Pairs 成对交换节点 C++/Java
  18. SQL Access Advisor in Oracle Database 10g
  19. ABP框架系列之二十二:(Dynamic-Web-API-动态WebApi)
  20. python 线程 event

热门文章

  1. [Practical Git] Compare file changes with git diff
  2. ASM 图解
  3. 详解 MySQL 中的 explain
  4. [设计模式1]--单例模式(SINGLETON)
  5. debian 系统备份
  6. cocos2dx 公告效果
  7. 利用Multipeer Connectivity框架进行WiFi传输
  8. 【大坑】DataGridView多线程更新修改Cell单元格卡死
  9. MySQL(6):数据操作
  10. js数组内置方法