实现思路: 将带空格分隔的字符串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代表一样大,返回正数代表后一小