小白初级函数(sort排序)问题

我实在是搞不懂为什么加了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,1

document.write(arr.sort(sortNumber))                   //1,5,10,25,40,1000


</script>


</body>

</html>


Ni14
浏览 1399回答 2
2回答

Lemon156

arrayobj.sort(sortfunction)   sortFunction  可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列。  如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:  负值,如果所传递的第一个参数比第二个参数小。  零,如果两个参数相等。  正值,如果第一个参数比第二个参数大。  所以sort函数是根据参数函数sortfunction的返回值来判断数组的前后元素的大小

蜂之谷

arrayObject.sort(sortby)sortby    可选。规定排序顺序。必须是函数。    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。若 a 等于 b,则返回 0。若 a 大于 b,则返回一个大于 0 的值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript