用户操作
[即时聊天] [发私信] [加为好友]
汪立ID:lee576
193795次访问,排名379好友84人,关注者83
不要想给自己找个“老师”,自己就是自己的老师,勤奋与思考,才配做程序员!
lee576的文章
原创 567 篇
翻译 4 篇
转载 344 篇
评论 37 篇
lee576的公告
交个女朋友,不如养条狗
最近评论
cxyloveme0909:楼主,我想请问一下,你这样做后,如果我想把该省的城市用整形存入数据库,那么该怎么办?谢谢~~
nuxgod:设置UltraWebGrid的第0列为模板列,加入CheckBox控件,判断其状态是否被选中,这个不行啊?
tcol.CellItems里面没有值啊?
billschen:学习了.多谢啦...
oyangxiaoxiao:这个方法不行的,我试过了。
VincenT08:实验成功!Thanks!!!
文章分类
收藏
    相册
    跳伞
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JS快速查找法收藏

    新一篇: 简述PE文件 | 旧一篇: 近期写的一个比较罗嗦的Oracle after update触发器

    有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。

    例如在一个含500个字符串的data数组里,我们想要找到一个指定的字符(key),返回它的数组下标,如果用这样的算法:

    CODE:
    function usual_search(data,key)
    {
    var m=data.length
    for(i=0;i<m;i++)
    {if(data[i]==key)return i}
    }

    由于需要做多次的比较,运算起来会相当的慢。

    本主题要介绍的是一种充分利用Jscript内置方法来实现在数组中查找数据的方法,由于借助Jscript内置方法,其效率要远优于上述常规算法。为了(诙谐|唬人)起见,我命其名为“JS暴虐查找法”。

    这种查找法对于数组元素有一个要求:就是数组元素的内容不得包含半角逗号(,)及我们指定的某一个代置符号(例如,在下面的示例中,我们指定代置符号为一个制表符“┢”)。在事先构建、维护数组时要注意满足这一要求。

    JS暴虐查找法的思路是非常简单的,原则只有一个,就是要“充分利用Jscript内置方法”:

    我们首先利用 Array 对象的 toString() 方法产生一个包含数组元素的字符串,在这个字符串中各数组元素由半角逗号(,)分隔的,所以我们事先要求数组元素的内容不得包含半角逗号。

    随后利用 String 对象的 replace() 方法将这个字符串中所包含的我们要找的关键字符串替换成我们指定的一种特殊符号(代置符号),一般选择一个不常用的字符来充当代置符号,在下面示例中我使用了一个制表符(┢),只要是能够确保不会在数组元素中出现的符号都可以充当代置符号。

    接下来就是我们最暴虐的一步了,还是用 replace() 方法,去除半角逗号(,)和代置符号(┢)以外的所有字符。统统去干净以后这个字符串就变成了一串半角逗号之中包含着一个代置符号(这模样:,,,,,,,,,,,,,,,,┢,,,,,,,,,)。

    最后,用 String 对象的 indexOf() 方法返回代置符号在这个字符串中的位置,而这个位置恰恰也就是在原来数组中的数组下标。

    Jscript示例程序:

    运行代码框

    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

    不应该忽略的是:是脚本执行非内置算法代码的低效率使得这个JS暴虐查找法有意义。

     

    发表于 @ 2008年07月17日 09:57:00|评论(loading...)|编辑|收藏

    新一篇: 简述PE文件 | 旧一篇: 近期写的一个比较罗嗦的Oracle after update触发器

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © lee576