我实在是搞不懂为什么加了sortNumber函数后就可以按从小到大排列出来了,sort()函数括号中不是应该填写参数,然后给出排序的吗? 但是sort()括号中加了sortNumber函数后,我感觉这样sort函数的参数不就都变成一些a-b的值了吗?然后给这些a-b的值排序?为什么最后的排序依然是给a,b排的序?<html><body><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 />") //10,5,40,25,1000,1document.write(arr.sort(sortNumber)) //1,5,10,25,40,1000</script></body></html>
2 回答
已采纳
Lemon156
TA贡献91条经验 获得超32个赞
arrayobj.sort(sortfunction)
sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,
那么元素将按照 ASCII 字符顺序进行升序排列。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
所以sort函数是根据参数函数sortfunction的返回值来判断数组的前后元素的大小
蜂之谷
TA贡献564条经验 获得超863个赞
arrayObject.sort(sortby)
sortby 可选。规定排序顺序。必须是函数。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
添加回答
举报
0/150
提交
取消