javascript Array对象sort()方法

sort() 方法用于对数组的元素进行排序。

语法

arrayObject.sort(sortby)

sortby 可选。规定排序顺序。必须是函数。

sort()方法返回对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

比较函数应该具有两个参数 a 和 b,其返回值如下:

?若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

?若 a 等于 b,则返回 0。

?若 a 大于 b,则返回一个大于 0 的值。

例子 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">

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()+ "<br />")
document.write(arr.sort(sortNumber))
</script>

输出:

10,5,40,25,1000,1

1,10,1000,25,40,5

1,5,10,25,40,1000

时间: 2024-07-31 15:00:37

javascript Array对象sort()方法的相关文章

JavaScript Array对象基本方法

昨天出去前端面试又失败,期间问了个有关于数组对象的问题,下面就这类问题总结下JavaScript常用的数组操作方法. 一.何为数组(Array)对象 数组对象是使用单独的变量名来存储一系列的值. 二.创建数组的三种方式 2.1使用关键词 new 来创建数组对象. let myStar =new Array(); myStar[0]="刘德华"; myStar[1]="成龙"; myStar[2]="林青霞"; myStar[3]="王菲

javascript Array对象concat()方法

concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 语法: arrayObject.concat(arrayX,arrayX,......,arrayX) arrayX 必需.该参数可以是具体的值,也可以是数组对象.可以是任意多个. 返回值: 返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的.如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组. 例子 1:

javascript Array对象unshift()方法

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度. arrayObject.unshift(newelement1,newelement2,....,newelementX) newelement1 必需.向数组添加的第一个元素. newelement2 可选.向数组添加的第二个元素. newelementX 可选.可添加若干个元素. unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间. 该方法

javascript Array对象splice()方法

splice() 方法向数组中添加或者从数组中删除项目,然后返回被删除的项目.该方法会改变原始数组. 语法: arrayObject.splice(index,howmany,item1,.....,itemX) index 必需.整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置. howmany 必需.要删除的项目数量.如果设置为 0,则不会删除项目. item1, ..., itemX 可选.向数组添加的新项目. splice()方法返回Array包含被删除项目的新数组,如果有

javascript Array对象toString()方法

toString() 方法可把数组转换为字符串,并返回结果. 语法: arrayObject.toString() 返回arrayObject的字符串表示.返回值与没有参数的join()方法返回的字符串相同.数组中的元素之间用逗号分隔. 当数组用于字符串环境时,JavaScript 会调用这一方法将数组自动转换成字符串.但是在某些情况下,需要显式地调用该方法. 例子: <script type="text/javascript"> var arr = new Array(3

javascript Array对象toLocaleString()方法

把数组转换为本地字符串. 语法: arrayObject.toLocaleString() 返回arrayObject的本地字符串. 方法会首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串. 例子: <script type="text/javascript"> var arr = new Array(3) arr[0] = "George" arr[1] = "Jo

javascript Array对象slice()方法

slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) start 必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置. 也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推. end 可选.规定从何处结束选取.该参数是数组片断结束处的数组下标.如果没有指定该参数, 那么切分的数组包含从 start 到数组结束的所有元素.如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素. slice()方法

JavaScript Array 对象扩展方法

/** 删除数组中指定索引的数据 **/ Array.prototype.deleteAt = function (index) { if (index < 0) { return this; } return this.slice(0, index).concat(this.slice(index + 1, this.length)); } /** 数组洗牌 **/ Array.prototype.random = function () { var tempArr = [], me = th

JavaScript - Array对象的使用 及 数组排序 sort

<html> <head> <head> <body> <script language="javascript"> // Array对象 // 第一种构造方法 var arr = new Array(); alert(arr.length); arr[0] = 520 ; arr[1] = "wjp" ; alert(arr.length); // 第二种构造方法 // Array(4) ; // 第三种