js中的排序小案例

原创 2015年07月27日 14:28:32

js中排序用到了sort函数。


下面代码实现字母、数字的混合排序:

<script>
var d = [1,2,3,'a','k','b','d',10,20,'c']
d.sort(function(a,b){
  var c = isFinite(a), // 如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
      d = isFinite(b);

  return (c != d && d - c) || a > b;
})
console.log(d)
</script>

代码解析:

isFinite() 判断a、b是否是数字。

return 后面的语句:

   c != d && c - d  如果c和d不相等 ,也就是说比较的值不是同一类型。那就比较 c-d的值是1还是-1(中间进行了隐式类型转换)

   如果c == d 也就是说c、d是同一类型的值,c、d可能都是字母,也可能都是数字。这里就可以直接比较大小了(都是字母的话不能直接做减法)。

isFinite() 函数用于检查其参数是否是无穷大。如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。


实现汉字的排序:

用到了localCompare

<script>
var d = ["你好","英语","呵呵","三个臭皮匠"]
d.sort(function(a,b){
  return a.localeCompare(b)
})
console.log(d)
</script>



相关文章推荐

一个分页排序SQL查询结果集不确定的案例

ITPUB 2017-01-22 10:51 前几天一位运价的兄弟提出一个关于分页排序SQL的问题,比较有意思,这里分享一下。 前些日子碰巧看了杨长老这篇文章:《让SQL成为一种生活方式:...

java排序案例

  • 2012年06月26日 21:17
  • 5KB
  • 下载

列表控件点击列排序案例

  • 2016年09月09日 17:01
  • 129KB
  • 下载

关于数组去重、统计次数、排序的小案例介绍

数组去重-统计次数-排序案例 #div1{width:375px;height: 525px;background: #ccc;margin: 0 auto;} #div1 ...
  • xyphf
  • xyphf
  • 2016年07月07日 09:44
  • 437

流行算法排序实用案例

  • 2017年08月21日 20:00
  • 20.26MB
  • 下载

Set、Map、list的排序,应用及案例

Set、Map、list的排序,应用及案例
  • Fredrik
  • Fredrik
  • 2017年05月08日 18:23
  • 77

JS表格排序

  • 2017年04月08日 11:01
  • 40KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js中的排序小案例
举报原因:
原因补充:

(最多只允许输入30个字)