需要注意的是排序是在原array上进行的,不会生成副本。
例如一个array为[20,17,15,30,100],默认排序后的结果为100,15,17,20,30。可以看到并不是按照数值的大小排序,如果想要按照数值的大小排序,可以自己实现一个function,如:
代码如下 |
复制代码 |
function intSort(a, b) {
return a - b;
}
var arr = [20,17,15,30,100];
arr.sort(intSort);
//或通过匿名函数的方式
arr.sort(
function(a, b) {
return a - b;
}
);
|
//倒序排序
arr.sort(intSort).reverse();另外如果想按照倒序排列,可以先对array进行sort,然后调用reverse方法即可。
例
代码如下 |
复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Javascript数组排序</title>
<script type="text/javascript">
s = [
{first:'joe',last:'awk'},
{first:'zwe',last:'oli'},
{first:'joe',last:'asp'}
];
for(var i=0;i<s.length;i++){
document.write(s[i].first + " " + s[i].last + "<br/>");
}
document.write("<hr/>")
s.sort(function(a,b){
var result = a.first.localeCompare(b.first);
if(result == 0)
result = a.last.localeCompare(b.last);
return result;
})
for(var i=0;i<s.length;i++){
document.write(s[i].first + " " + s[i].last + "<br/>");
}
</script>
</head>
<body>
</body>
</html>
|
|