ITPub博客

首页 > 应用开发 > > Array数组的Sort()排序方法讲解

Array数组的Sort()排序方法讲解

作者:skyweave 时间:2019-10-28 10:12:42 0 删除 编辑

Array.prototype.sort()

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

说明:用于对数组的元素进行排序,顾名思义就是用来对数组进行排序用的。

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

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

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

若 a 等于 b,则返回 0。

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

是不是有点绕,好吧,第一次读的时候我也蒙圈,直接上实例。

function sortwayA(a, b)

{

return a-b;//如要需要小的排前面,用第一个参数减第二个参数

}

function sortwayB(a,b)

{

return b-a;//大的排前面

}

var arr = new Array(6)

arr[0] = -10

arr[1] = 5

arr[2] = 40

arr[3] = 25

arr[4] = 1000

arr[5] = 1

arr[6] = -20

document.write(arr.sort())

//输出:-10,-20,1,1000,25,40,5

document.write(arr.sort(sortwayA)+"")

//输出:-20,-10,1,5,25,40,1000

document.write(arr.sort(sortwayB)+"")

//输出:1000,40,25,5,1,-10,-20

没有参数时候,默认按编码排序,即使是数字,也不会按顺序排序,如果是英文,默认按字母编码排序。

后面两个方面可以简写为:

arr.sort(function(a,b){return a-b})

arr.sort(function(a,b){return b-a})

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/834/viewspace-3149206/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    134
  • 访问量
    895