js对一个字符串根据ASCII码从小到大排序(字典序)

JavaScript023

js对一个字符串根据ASCII码从小到大排序(字典序),第1张

js对一个字符串根据ASCII码从小到大排序(字典序)

实现思路: 将带空格分隔的字符串split成数组,利用数组sort()排序方法,在该方法里面用chartCodeAt()方法比对元素间同位置的字符的ASCII码(同一位置字符的ASCII码相同则继续比对下一个字符)

如下:

">

<html> <head>  <meta http-equiv="Content-Type" content="text/html charset=gbk">  <title>Untitled Document</title>  <script>   window.onload=function(){    var a="1我a2你b3他d"   //要排序的字符串a    var b=a.split("")       //分割字符串a为数组b    b.sort()              //数组b升序排序(系统自带的方法)    var c=b.join("")        //把数组b每个元素连接成字符串c    alert(c)              //输出最终排序好的字符串   }  </script> </head> <body> </body>

</html>

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。

反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。

var arr = ['01','03','02','11','13','12','21','23','20']

arr.sort(function(a, b) {

    return (a % 10 == 0 ? +a + 2 + "" : a).split("").reverse().join("") - (b % 10 == 0 ? +b + 2 + "" : b).split("").reverse().join("")

})

sort方法里面的函数就是这个规则。返回负数代表前一个小,返回0代表一样大,返回正数代表后一小