// 定义通用排序函数
function sortNumber(obj, func){
// 参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常
if(!(obj instanceof Array) || !(func instanceof Function)){
var e = new Error(); // 生成错误信息
e.number = 100000; // 定义错误号
e.message = "参数无效"; // 错误描述
throw e; // 抛出异常
}
// 开始排序
for(n in obj){
for(m in obj){
if(func(obj[n], obj[m])){
var tmp = obj[n]; // 创建临时变量
obj[n] = obj[m]; // 交换数据
obj[m] = tmp;
}
}
}
// 返回排序后的数组
return obj;
}
function greatThan(arg1, arg2){ // 回调函数,用户定义的排序规则
return arg1 > arg2; //规则:从大到小
}
try{
var arr = new Array(5,3,4,8,7,9,1,2,0);
document.write("<li>排序前:" + arr.join(","), "<br/>");
sortNumber(arr, greatThan);
document.write("<li>排序后:" + arr.join(","));
}catch(e){
document.write(e.number + ": " + e.message);
}
JS回调函数使用
最新推荐文章于 2021-07-06 15:50:39 发布