腾讯云618限量抢购

JavaScript Array sort 方法:对数组的元素进行排序

最后更新:2012-05-21 01:28阅读:15771

JavaScript Array sort 方法

Array 对象的 sort 方法用于对数组的元素进行排序。语法如下:

array_object.sort( sortby )
参数说明:
参数 说明
array_object 要操作的数组(对象)
sortby 可选。规定排序顺序的函数。

注意:sort 方法会直接在原数组上进行排序而不会生成副本。

说明

如果省略 sortby 参数,非字符串元素将被转换为字符串,然后按照字符编码的顺序进行升序排序;如果提供了排序函数,该函数接受两个元素参数,分别代表排序比较时的两个元素。如果函数返回值大于 0 ,就将两个元素位置进行交换,反之则不交换,具体可参见例子3。

sort 方法实例

例子 1

下面是省略 sortby 参数的例子,元素包含了数字,字符,布尔等数据类型。

<script language="JavaScript">

var array_1 = new Array('abc','xyz',234,true,'123a','字符');
array_1.sort();
document.write( array_1 );

</script>

运行该例子,输出:

123a,234,abc,true,xyz,字符

注意:在原数组中,有元素是布尔值 true ,经过排序后该值仍然是布尔值,只是在排序时,按照字符串 'true' 来比较。

例子 2

下面是省略 sortby 参数,但元素是纯数字时的排序例子:

<script language="JavaScript">

var array_1 = new Array(10,5,1000,21,1);
array_1.sort();
document.write( array_1 );

</script>

运行该例子,输出:

1,10,1000,21,5 

可见默认情况下,对数字排序并没有按照由小到大顺序来排序(实际是按照字符编码来排序)。要想按照大小顺序来排序,必须使用 sortby 参数,参见下面的例子。

例子 3

下面的例子使用 sortby 参数,将数字由小到大进行排序:

<script language="JavaScript">

function asc( x,y )
{
    return x - y;
}

var array_1 = new Array(10,5,1000,21,1);
array_1.sort( asc );
document.write( array_1 );

</script>

运行该例子,输出:

1,5,10,21,1000 

可见在经过多次比较之后,数字小的元素就被排到前面去了。

例子 4

下面的例子使用 sortby 参数,将奇数排在前面:

<script language="JavaScript">

function odd ( x,y )
{
    if( x % 2 ==0 ){
        return 1; 
    } else {
        return -1;
    }

}

var array_1 = new Array(10,5,1000,21,1);
array_1.sort( odd );
document.write( array_1 );

</script>

运行该例子,输出:

5,1,21,10,1000 

参考阅读

  1. JavaScript Array reverse 方法:颠倒数组中元素的顺序

本章节内容共分 15 部分:
  1. 1. JavaScript 数组 Array
  2. 2. JavaScript 二维数组与多维数组
  3. 3. JavaScript 使用 for ... in 语句遍历数组中的元素
  4. 4. JavaScript 数组 length 属性获取数组长度或设置数组元素的数目
  5. 5. JavaScript concat 方法:连接两个或多个数组
  6. 6. JavaScript join 方法:把数组转换为一个字符串
  7. 7. JavaScript Array toString 方法:把数组转换为字符串
  8. 8. JavaScript push 方法:向数组的末尾添加一个或多个元素
  9. 9. JavaScript unshift 方法:向数组的开头添加一个或多个元素
  10. 10. JavaScript pop 方法:删除并返回数组的最后一个元素
  11. 11. JavaScript shift 方法:删除并返回数组的第一个元素
  12. 12. JavaScript splice 方法:插入、删除或替换数组的元素
  13. 13. JavaScript Array slice 方法:从数组中返回选定的元素
  14. 14. JavaScript Array reverse 方法:颠倒数组中元素的顺序
  15. 15. JavaScript Array sort 方法:对数组的元素进行排序
腾讯云618限量抢购