中易网

function sortNumber(a, b) { return a - b } a-b是什么意思

答案:2  悬赏:50  
解决时间 2021-04-28 06:07
  • 提问者网友:傀儡离开
  • 2021-04-27 13:28
function sortNumber(a, b) { return a - b } a-b是什么意思
最佳答案
  • 二级知识专家网友:修女的自白
  • 2021-04-27 14:45
这是个自定义函数,参数是a,b,传给函数一个返回值。很显然答案有正数,负数和0三种可能。
全部回答
  • 1楼网友:我们只是兮以城空
  • 2021-04-27 16:16
arr.sort(sortnumber) 这里的sortnumber可以理解为成c++中的仿函数,传递的是一个函数对象,sort函数里面会调用它,并传递给它2个参数。sortnumber函数要求返回正、负或零值。sort函数可能是使用qsort实现的,网上有很多资料,自己实现一个也不难。 简单实现了一个,没有处理默认参数,比如arr.sort(),可以不传递这个参数,我没有处理它。#符号是为了保持格式,不过页面上显示不了,可能是字体不对。 注:修改了一下,可以处理默认参数。 < script type="text/javascript" > function sortnumber(a,b) { return a-b; } function swap (arr, idx1, idx2) { var tmp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = tmp; } function qsort (arr, l, r, sortfunction) { if (l >= r) return; if (r-l == 1) { if (sortfunction(arr[r], arr[l]) < 0) swap(arr, l, r); return; } var pivot = l + math.round((r-l) / 2); swap(arr, l, pivot); var pointer = l+1; for (var i=l+1; i<=r; ++i){ if (i != pointer && sortfunction(arr[i], arr[l]) < 0){ swap (arr, pointer++, i); } } swap(arr, l, pointer); qsort(arr, l, pointer-1, sortfunction); qsort(arr, pointer, r, sortfunction); } array.prototype.mysort=function(sortfunction) { if (this.length <= 1) return this; if (sortfunction == undefined) sortfunction = function (a, b){ return a-b; } qsort (this, 0, this.length - 1, sortfunction); return this; } 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+" ") document.write(arr.mysort(sortnumber)) < /script >
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息