<script type="text/javascript"> function sortNumber(a,b) { alert(a); alert(b); return a - b } var arr =[8,5,7,3,32,222] arr.sort(sortNumber) alert(arr) </script>
排序是建立在对象比较的基础上的, 两个参数就是排序过程中, 发生比较时的两个对象.下面给个倒序的例子.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> </head> <script language="JavaScript"> function sortNumber(a, b){ return (b.x - a.x); }
arrayobj.sort(sortfunction)
其中arrayObj是必选项。任意 Array 对象。
sortFunction是可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。JavaScript中sort函数方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
示例
下面这个例子说明了 JavaScript中sort函数方法的用法:
function SortDemo(){
var a, l; // 声明变量。
a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
l = a.sort(); // 排序数组。
return(l); // 返回排序的数组。
}
只要比较了2个参数的大小 根据结果返回正 负 0 自动进行排序。(是这样吗???)那字符串就不能用之种了?????
好象字符串可以直接用sort()
字符串排序你就看你想要怎样排,你把算法写进这个function就行了
function sortNumber(a,b)
{
alert(a);
alert(b);
return a - b
}
var arr =[8,5,7,3,32,222]
arr.sort(sortNumber)
alert(arr)
</script>
两个参数就是排序过程中,
发生比较时的两个对象.下面给个倒序的例子.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<script language="JavaScript">
function sortNumber(a, b){
return (b.x - a.x);
}
function GetInfo(){
var arr = [{
x: "5",
y: 0
}, {
x: "2",
y: 12
}, {
x: "3",
y: 9
}, {
x: "121",
y: 77
}, {
x: "32",
y: 9
}, {
x: "222",
y: 98
}];
arr.sort(sortNumber)
var msg = "";
for (var i = 0; i < arr.length; i++) {
if (msg != "") {
msg += "\n";
}
msg += "x=" + arr[i].x + "; y=" + arr[i].y + ";"
}
alert(msg);
}
</script>
<body>
<input type="button" value="test" onclick="GetInfo();">
</body>
</html>