编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数个数为两个,两个参数的关系作为排序后的元素间的关系。

<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>

时间: 2024-07-30 16:27:51

编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数个数为两个,两个参数的关系作为排序后的元素间的关系。的相关文章

如何??编写一个Loader

如何??编写一个Loader ?己编写一个Loader的过程是比较简单的, Loader就是?个函数,声明式函数,不能?用箭头函数 拿到源代码,作进一步的修饰处理,再返回处理后的源码就可以了 简单案例 l 创建一个替换源码中字符串的loader //index.js console.log("hello world"); //replaceLoader.js module.exports = function(source) { console.log(source, this, th

python求数字位数的方法

第一种:利用str()函数将数字转化成字符串,再利用len()函数判断位长. 1 a=Int(raw_input("the number you want type in:") 2 b=len(str(a)) 3 print b 第二种:利用除10取商,通过循环次数判断位数. 1 c=0 2 a=int(raw_input("the number you want type in:")) 3 while a!=0: 4 a=a/10 5 c +=1 6 print

go语音之进阶篇方法面向过程和对象函数的区别

1.方法 (method) 在面向对象编程中,一个对象其实也就是一个简单的值或者一个变量,在这个对象中会包含一些函数,这种带有接收者的函数,我们称为方法(method). 本质上,一个方法则是一个和特殊类型关联的函数. 一个面向对象的程序会用方法来表达其属性和对应的操作,这样使用这个对象的用户就不需要直接去操作对象,而是借助方法来做这些事情. 在Go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法. 方法总是绑定对象实例,并隐式将实例作为第1实参 (receiver)

C++省略号类型和参数个数不确定函数参数范例

声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/44203651 今天想写个宏定义,发现宏定义里也可以写不定参数,但是我的宏最终没有用. 因为我觉得写完,这个不定参数给我带来的麻烦,比好处好想多. 因此我就定义了两个宏,用一个宏定义另一个. 把今天这个c++的类型不确定和参数个数不确定的用法先记下来.以备后用啊. 直接代码: #include<cstdarg> // 必备头文件 #include<ios

[ActionScript 3.0] AS3 获取函数参数个数

1 function createFunction(param1:String,param2:String,param3:int=0):void 2 { 3 trace(arguments.length);//arguments.length表示实参个数 4 } 5 trace(arguments.length);//输出0,说明arguments.length只在函数体内有效 6 trace(createFunction.length);//输出3,说明createFunction.lengt

java 数据装箱及练习-对一个字符串中的数字进行排序

/* 八种数据类型:byte,short,int,long,float,double,char,boolean, 基本数据类型对象包装类: 为了方便操作基本数据类型值,将其封装成对象,在对象中定义了属性和行为丰富该数据的操作. 用于描述对该对象的类就称为基本数据类型对象封装类. byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 基本数据类型 --

C++ 排序函数 sort(),qsort()的使用方法

想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描写叙述 sort 对给定区间全部元素进行排序 stable_sort 对给定区间全部元素进行稳定排序 partial_sort 对给定区间全部元素部分排序 partial_sort_copy 对给定区间复制并排序 nth_element 找出给定区间的某个位置相应的元素 is_sorted 推断一个区间是否已经排好序 p

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)

/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数.负整数) 例如:"12" 返回12 "-123" 返回-123 函数原型:int my_atof(char *str) */ #include <stdio.h> int my_atof(char *str) { int flag=0; int m=0; if(*str=='-') { flag=1; str++; } while(*str!='\0') { if(*str<

SQL按指定文字顺序进行排序(中文或数字等)

在有些情况下我们需要按指定顺序输出数据,比如选择了ID in(3,1,2,5,4)我们希望按这个3,1,2,5,4的顺序输出,这样只使用order by ID是无法实现的, 但是我们可以使用order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')的方法来实现这个目的.举例如下: Create Table info( ID int identity(1,1) not null, title varchar(100) not null