All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP6将实现的几个特性和功能_[PHP教程]
ASP.NET,2.0主题和皮肤实现网站美化_[Asp.Net教程]
visual c++中图形设备接口概述
打造Ajax简单相册_[AJAX教程]
C#中continue语句的使用方法
基于AJAX技术的DataGrid控件编程_[Asp.Net教程]
初学者接触HTML了解一些HTML标记(3)_[Html教程]
asp.net2.0登陆控件之登录控件典型应用
ASP.NET,2.0高级数据处理之数据绑定语法_.net资料_编程技术
VS2008正式版创建silverlight项目失败的解决办法_[Asp.Net教程]
Reading number is top 10 pictures
The money of more than 100 countries and regions8
PengLiYuan lady for the world health organization fight TB and AIDS goodwill ambassador
Street street fighting
身材野火台灣美女2
9.3阅兵全景图3-外国方阵梯队和坦克方阵梯队
美洲杯宝贝的雨中风情1
Sora aoi in China2
2012 national geographic daily picture8
Hunan province aizhai super-large suspension bridge open to traffic and 4 world first1
刘亦菲写真集1
Download software ranking
Tram sex maniac 2 (H) rar bag4
美女写真2
C++教程第四版
仙剑奇侠传98版歌曲
C#高级编程(第4版)
SP4 for SQL2000
matrix1
Detective task-the top secret prostitution files
网络管理员第三版
I'm come from Beijing2
delv published in(发表于) 2013/12/31 6:40:13 Edit(编辑)
奇招,javascript暴虐查找法_JavaScript技术_编程技术

奇招,javascript暴虐查找法_JavaScript技术_编程技术

奇招 javascript暴虐查找法_JavaScript技术_编程技术-你的首页-uuhomepage.com







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




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




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




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




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




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




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




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




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




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




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




Jscript示例程序:




运行代码框







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






















添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.