色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JS暴虐查找法簡潔版

       例如在一個(gè)含500個(gè)字符串的data數(shù)組里,我們想要找到一個(gè)指定的字符(key),返回它的數(shù)組下標(biāo),如果用這樣的算法:
function usual_search(data,key)
{
   var m=data.length
   for(i=0;i<m;i++)
   {if(data[i]==key)return i}
}
由于需要做多次的比較,運(yùn)算起來會(huì)相當(dāng)?shù)穆?nbsp;

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

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

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

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

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

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

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

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

JavaScript技術(shù)JS暴虐查找法簡潔版,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 浠水县| 万年县| 陆河县| 望都县| 天水市| 龙岩市| 内江市| 广丰县| 民权县| 威远县| 宜宾县| 肥城市| 蓬安县| 忻州市| 乐清市| 晴隆县| 南投县| 呼和浩特市| 融水| 霍城县| 阜阳市| 永善县| 平原县| 色达县| 和田县| 运城市| 德兴市| 平和县| 宝丰县| 江西省| 石台县| 宣武区| 海门市| 河津市| 祁连县| 分宜县| 馆陶县| 江阴市| 广元市| 马公市| 尚志市|