sort() 方法用于对数组的元素进行排序。
语法: arrayObject.sort(sortby)
参数: sortby可选。规定排序顺序,必须是函数。
注: 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,
说得更精确点,是按照字符编码的顺序进行排序,要实现这一点,
首先应把数组的元素都转换成字符串(如有必要),再进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b, 其返回值如下:
若a小于b, 在排序后的数组中a应该出现在b之前,则返回一个小于0的值。
若a等于b, 则返回0;
若a大于b, 则返回一个大于0的值。 ——————————————————————————————————————————————
<html>
<head>
</head>
<body>
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "a"
arr[1] = "d"
arr[2] = "f"
arr[3] = "fa"
arr[4] = "c"
arr[5] = "q"
document.write(arr + "<br />")
document.write(arr.sort())
</script>
</body>
</html>
结果: a,d,f,fa,c,q
a,c,d,f,fa,q
———————————————————————————————————————————————
对象数组的排序
<html>
<head>
</head>
<body>
<script type="text/javascript">
function keysrt(key) {
return function(a,b){
if( a[key] < b[key])
{
return -1;
}
else if(a[key] == b[key])
{
return 0;
}
else
{
return 1;
}
}
}
function showdata()
{
document.write("name: ");
for(i in arr)
{
document.write( arr[i].name)
}
document.write("<br />");
document.write("phone: ");
for(i in arr)
{
document.write( arr[i].phone)
}
}
var arr = [
{name: 'a', phone: 1},
{name: 'b', phone: 5},
{name: 'd', phone: 3},
{name: 'c', phone: 4}
]
showdata();
document.write("<br /><br /> Sort by name: <br />");
arr.sort(keysrt("name"));
showdata();
document.write("<br /><br /> Sort by phone: <br />");
arr.sort(keysrt("phone"));
showdata();
</script>
</body>
</html>
结果为:
name: abdc
phone: 1534
Sort by name:
name: abcd
phone: 1543
Sort by phone:
name: adcb
phone: 1345