sort 方法
返回一个元素已经进行了排序的 Array 对象。
arrayobj.sort(sortfunction)
参数
arrayObj
必选项。任意 Array 对象。
sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
说明
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
1.负值,如果所传递的第一个参数比第二个参数小。
2.零,如果两个参数相等。
3.正值,如果第一个参数比第二个参数大。
示例
下面这个例子说明了 sort 方法的用法:
以下是代码片段: function SortDemo() { var a, l; // 声明变量。 a = new Array("X" ,"y" ,"d", "Z", "v","m","r"); l = a.sort(); // 排序数组。 return(l); // 返回排序的数组。 } |
Demo(数字排序,sort(prama)方法带参数):
以下是代码片段: <script> var numArr = new Array(12,23,1,4,23,34,2,5); numArr.sort(function compare(a,b){return a-b;}); for (var i = 0; i<numArr.length; i++) { document.write(numArr[i] +"<br>"); } </script> |
结果:
1
2
4
5
12
23
23
34
Demo2(Demo反排序):
以下是代码片段: <script> var numArr = new Array(12,23,1,4,23,34,2,5); numArr.sort(function compare(a,b){return b-a;}); for (var i = 0; i<numArr.length; i++) { document.write(numArr[i] +"<br>"); } </script> |
结果:
34
23
23
12
5
4
2
1
===========================================================================
测试文档:
<!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=gbk" />
<title></title>
</head>
<body>
<script>
var arr=[200,20,34,43,210,56,89];
//arr.sort();
for(i=0;i<arr.length;i++){
document.write(arr[i]+"<br>");
}
document.write("=========================<br>");
arr.sort();
for(i=0;i<arr.length;i++){
document.write(arr[i]+"<br>");
}
var temp;// 临时变量
for(i = arr.length - 1; i > 0; i--) {
for(var j = 0; j <= i - 1; j++)
{
if(arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
document.write("=========================<br>");
// 输出结果
for(var k = 0; k < arr.length; k++) {
document.write(arr[k] + "<br>");
}
document.write("=========================<br>");
// 输出结果
for(var k = arr.length-1; k >=0 ; k--) {
document.write(arr[k] + "<br>");
}
</script>
<script>
document.write("=========================<br>");
var numArr = new Array(12,23,1,4,23,34,2,5);
numArr.sort(function compare(a,b){return a-b;});
for (var i = 0; i<numArr.length; i++) {
document.write(numArr[i] +"<br>");
}
</script>
<script>
document.write("=========================<br>");
var numArr = new Array(12,23,1,4,23,34,2,5);
numArr.sort(function compare(a,b){return b-a;});
for (var i = 0; i<numArr.length; i++) {
document.write(numArr[i] +"<br>");
}
</script>
</body>
</html>
===================================================================
一个学习的地方:
JavaScript sort() 方法 http://www.w3school.com.cn/js/jsref_sort.asp
定义和用法
sort() 方法用于对数组的元素进行排序。
语法
arrayObject.sort(sortby)
参数 | 描述 |
---|---|
sortby | 可选。规定排序顺序。必须是函数。 |
返回值
对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
说明
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
提示和注释
注释:您可使用负值从数组的尾部选取元素。
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
实例
例子 1
在本例中,我们将创建一个数组,并按字母顺序进行排序:
<script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") document.write(arr.sort()) </script>
输出:
George,John,Thomas,James,Adrew,Martin Adrew,George,James,John,Martin,Thomas
例子 2
在本例中,我们将创建一个数组,并按字母顺序进行排序:
<script type="text/javascript"> var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" document.write(arr + "<br />") document.write(arr.sort()) </script>
输出:
10,5,40,25,1000,1 1,10,1000,25,40,5
请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:
<script type="text/javascript">
function sortNumber(a,b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber)
)
</script>
输出:
10,5,40,25,1000,1 1,5,10,25,40,1000
TIY
-
sort() 按字母顺序
- 如何使用 sort() 按照字母顺序对数组进行排序。 sort() 按数值顺序
- 如何使用 sort() 按照数值顺序对数组进行排序。