JS暴虐查找法

2016-02-19 11:50 4 1 收藏

图老师小编精心整理的JS暴虐查找法希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。
例如在一个含500个字符串的data数组里,我们想要找到一个指定的字符(key),返回它的数组下标,如果用这样的算法:
[Copy to clipboard]CODE:
function usual_search(data,key)
{
var m=data.length
for(i=0;im;i++)
{if(data[i]==key)return i}
}
由于需要做多次的比较,运算起来会相当的慢。
本主题要介绍的是一种充分利用Jscript内置方法来实现在数组中查找数据的方法,由于借助Jscript内置方法,其效率要远优于上述常规算法。为了(诙谐|唬人)起见,我命其名为“JS暴虐查找法”。
这种查找法对于数组元素有一个要求:就是数组元素的内容不得包含半角逗号(,)及我们指定的某一个代置符号(例如,在下面的示例中,我们指定代置符号为一个制表符“┢”)。在事先构建、维护数组时要注意满足这一要求。
JS暴虐查找法的思路是非常简单的,原则只有一个,就是要“充分利用Jscript内置方法”:
       我们首先利用 Array 对象的 toString() 方法产生一个包含数组元素的字符串,在这个字符串中各数组元素由半角逗号(,)分隔的,所以我们事先要求数组元素的内容不得包含半角逗号。
       随后利用 String 对象的 replace() 方法将这个字符串中所包含的我们要找的关键字符串替换成我们指定的一种特殊符号(代置符号),一般选择一个不常用的字符来充当代置符号,在下面示例中我使用了一个制表符(┢),只要是能够确保不会在数组元素中出现的符号都可以充当代置符号。
       接下来就是我们最暴虐的一步了,还是用 replace() 方法,去除半角逗号(,)和代置符号(┢)以外的所有字符。统统去干净以后这个字符串就变成了一串半角逗号之中包含着一个代置符号(这模样:,,,,,,,,,,,,,,,,┢,,,,,,,,,)。
       最后,用 String 对象的 indexOf() 方法返回代置符号在这个字符串中的位置,而这个位置恰恰也就是在原来数组中的数组下标。
Jscript示例程序

来源:http://www.tulaoshi.com/n/20160219/1598789.html

延伸阅读
标签: Web开发
最近发现DOMDocument对象很重要,还有XMLHTTP也很重要 注意大小写一定不能弄错. 属性: 1Attributes     存储节点的属性列表(只读) 2childNodes     存储节点的子节点列表(只读) 3dataType     返回此节点的数据类型 4Definition     以DTD或XML模式给出...
标签: Web开发
用6N±1法求素数 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,) 显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数。所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数)。 根据上述分析,我们可以构造另一面筛子...
查找iPhone怎么用   在最新的iOS9系统中,查找iPhone功能可以直接在桌面找到,这个功能对于很多苹果手机用户来说,都比较实用。如果iPhone丢了,借助查找iPhone功能,或许可以帮助你找回手机。查找iPhone怎么用?下面图老师小编以最新的iOS9为例,教大家查找iPhone如何设置与使用。 查找iPhone怎么用 iOS9查找iPhone设置使用教...
不知道这样的演示效果怎么样,因为屏幕大小的问题没办法输出太多的数字,假如还有什么好的想法希望大家提出.#include graphics.h void fun(int x[],int y,int z);/*具体排序过程*/ void Init();/*图形初试化*/ void Close();/*图形关闭*/ void Put(int x[],int y);/*输出15个数字*/ void Up(int x);/*画上箭*/ void Down(...
用Authorware制作课件,我们需要调用很多外部媒体,使用各种效果,当我们将课件打包成EXE文件发布时,要让程序能正常运行,就必须将相应的Xtras文件随同程序文件放在同一目录下一起发布。要用到哪些Xtras文件呢?手工查找太麻烦,如果把Authorware安装目录下的Xtras文件夹全部复制下来,又会使课件的体积变得很大,浪费磁盘空间,携带也不...

经验教程

853

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部