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 >
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息