[轉] js 數組 檢索
轉自: http://zhidao.baidu.com/question/42679804.html 有空研究
網上看到一個老前輩寫過這段程序,討論JS數組的檢索速度,但我發現一個問題,請看: <input id="count" value="50000" size="7" maxlength="6"> <input type="button" value="數組初始華" onclick="txt.innerHTML = array_init()"><br> <input type="button" value="傳統循環" onclick="txt.innerHTML += method_for()"> <input type="button" value="正則匹配" onclick="txt.innerHTML += method_regexp()"> <div id="txt"></div> <SCRIPT LANGUAGE="JavaScript"> var txt = document.getElementById("txt"); var a = new Array(); function array_init() { var n = parseInt(document.getElementById("count").value); a.length = 0; for(var i=0; i<n; i++) { a[i] = Math.random() +""; } return "數組長度:"+ n; } function method_for() { var n = a.length; var begin = new Date().getTime(); var b = new Array(); for(var i=0; i<n; i++) { if(a[i].indexOf("0.9999")==0) { b[b.length] = a[i]; } } return ("<br>傳統循環法耗時 "+ (new Date().getTime() - begin) +" 毫秒!檢索的結果:<strong title='"+ b.join(" ") +"'>檢索到 "+ b.length +" 個記錄!</strong>"); } function method_regexp() { var begin = new Date().getTime(); var b = new Array(); var s = a.join("\x0f"); var r = new RegExp().compile("0\\.9999\\d+", "g"); b = s.match(r); s = ""; return ("<br>正則匹配法耗時 "+ (new Date().getTime() - begin) +" 毫秒!檢索的結果:<strong title='"+ b.join(" ") +"'>檢索到 "+ b.length +" 個記錄!</strong>"); } </SCRIPT> 問題: 當在IE中運行的時候,正則檢索很快 當在FireFox中運行的時候,結果相反,遍歷數組很快,而正則還沒有在IE中遍歷數組的方法快 朋友們有興趣的試試,討論一下IE中和FireFox中遍歷數組和正則各是怎么一回事
posted on 2009-08-27 11:25 星期五 閱讀(506) 評論(0) 編輯 收藏 所屬分類: web 開發