编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数个数为两个,两个参数的关系作为排序后的元素间的关系。
<script>
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 numAry = new Array(5,8,6,32,1,45,6,89,9); //生成一数组
	document.write("<li>排序前:"+numAry); //输出排序前的数组
	SortNumber(numAry,greatThan); //调用排序函数
	document.write("<li>排序后:"+numAry); //输出排序后的数组
}
catch(e)
{
	alert(e.number+":"+e.message);
}
</script>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号