最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS暴虐查找法簡潔版

 更新時間:2008年07月18日 12:51:31   作者:  
有過相關(guān)經(jīng)驗的朋友都知道,Jscript的效率畢竟有限,在數(shù)組中查找數(shù)據(jù)時如果用常規(guī)的算法來做執(zhí)行起來會很慢。
       例如在一個含500個字符串的data數(shù)組里,我們想要找到一個指定的字符(key),返回它的數(shù)組下標,如果用這樣的算法:
function usual_search(data,key)
{
   var m=data.length
   for(i=0;i<m;i++)
   {if(data[i]==key)return i}
}
由于需要做多次的比較,運算起來會相當?shù)穆?nbsp;

       本主題要介紹的是一種充分利用Jscript內(nèi)置方法來實現(xiàn)在數(shù)組中查找數(shù)據(jù)的方法,由于借助Jscript內(nèi)置方法,其效率要遠優(yōu)于上述常規(guī)算法。為了(詼諧|唬人)起見,我命其名為“JS暴虐查找法”。 

       這種查找法對于數(shù)組元素有一個要求:就是數(shù)組元素的內(nèi)容不得包含半角逗號(,)及我們指定的某一個代置符號(例如,在下面的示例中,我們指定代置符號為一個制表符“┢”)。在事先構(gòu)建、維護數(shù)組時要注意滿足這一要求。 

JS暴虐查找法的思路是非常簡單的,原則只有一個,就是要“充分利用Jscript內(nèi)置方法”: 

       我們首先利用 Array 對象的 toString() 方法產(chǎn)生一個包含數(shù)組元素的字符串,在這個字符串中各數(shù)組元素由半角逗號(,)分隔的,所以我們事先要求數(shù)組元素的內(nèi)容不得包含半角逗號。 

       隨后利用 String 對象的 replace() 方法將這個字符串中所包含的我們要找的關(guān)鍵字符串替換成我們指定的一種特殊符號(代置符號),一般選擇一個不常用的字符來充當代置符號,在下面示例中我使用了一個制表符(┢),只要是能夠確保不會在數(shù)組元素中出現(xiàn)的符號都可以充當代置符號。 

       接下來就是我們最暴虐的一步了,還是用 replace() 方法,去除半角逗號(,)和代置符號(┢)以外的所有字符。統(tǒng)統(tǒng)去干凈以后這個字符串就變成了一串半角逗號之中包含著一個代置符號(這模樣:,,,,,,,,,,,,,,,,┢,,,,,,,,,)。 

       最后,用 String 對象的 indexOf() 方法返回代置符號在這個字符串中的位置,而這個位置恰恰也就是在原來數(shù)組中的數(shù)組下標。 

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關(guān)文章

最新評論

汾西县| 淄博市| 徐汇区| 虞城县| 辉南县| 探索| 吴堡县| 绥棱县| 漠河县| 佛教| 嘉定区| 汾西县| 合阳县| 蕉岭县| 灵山县| 仪陇县| 同江市| 景洪市| 临泉县| 昭苏县| 恩施市| 山阴县| 遵义县| 阿合奇县| 岑巩县| 璧山县| 渑池县| 铁岭市| 三江| 兴业县| 论坛| 舟山市| 岑溪市| 澎湖县| 云梦县| 盘山县| 淅川县| 汕尾市| 阳江市| 青冈县| 封丘县|