JavaScript 中数组排序方法的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:16:21
sort()方法只能按字符串的方式排序;

var a=new Array(3);
a[0]=27;
a[1]=17;
a[2]=100;
sort(a);
document.write(a+“ ”);
结果确是27 17 100
要怎么才能用sort()按数学上的方法排序呢?

你的程序完全错误,根本不可能排序,排序的一般程序是这样的:
<SCRIPT language=JavaScript>
var a=new Array(3);
a[0]=27;
a[1]=17;
a[2]=100;
a.sort();
document.write(a+" ");
</SCRIPT>

如果要求结果是17、27、100这样的数字大小排序,应该使用下面的程序:
<SCRIPT language=JavaScript>
var a=new Array(3);
a[0]=27;
a[1]=17;
a[2]=100;
a.sort(function(x,y){return parseInt(x)-parseInt(y);});
document.write(a+" ");
</SCRIPT>

要控制按照自己的规律进行排序,就得学会字节编写排序函数,我下面粘贴Array对象的sort方法说明,你看了就会明白,不明白再回头结合上面的例子。

Array 对象 sort 方法

描述:
返回一个元素已经进行了排序的 Array 对象。

语法:
arrayobj.sort(sortfunction)

sortfunction 参数是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

说明:
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。

零,如果两个参数相等。

正值,如果第一个参数比第二个参数大。