码迷,mamicode.com
首页 > 编程语言 > 详细

回调函数,用户定义的排序规则

时间:2017-08-13 21:16:57      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:blog   nal   xhtml   style   throw   回调   函数   htm   gre   

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>范例6-3</title>
</head>
<body>
<script language="javascript">
    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,7,25 );   // 生成一数组
        document.write("<li>排序前:"+numAry);          // 输出排序前的数据
        SortNumber( numAry, greatThan )                 // 调用排序函数
        document.write("<li>排序后:"+numAry);          // 输出排序后的数组
    }
    catch(e)
    {
        alert( e.number+""+e.message );               // 异常处理
    }
</script>
</body>
</html>

 

回调函数,用户定义的排序规则

标签:blog   nal   xhtml   style   throw   回调   函数   htm   gre   

原文地址:http://www.cnblogs.com/huodaihao/p/7354770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!