我有我的網頁上這array.prototype和它似乎是佔用了大量的處理時間:大循環中使用的性能更高:.indexOf(str)或.match(regex)?
Array.prototype.findInArray = function(searchStr) {
var returnArray = false;
for (i=0; i<this.length; i++) {
if (typeof(searchStr) == 'function') {
if (searchStr.test(this[i])) {
if (!returnArray) { returnArray = [] }
returnArray.push(i);
}
} else {
var regexp = new RegExp(".*" + searchStr + ".*");
if (this[i].match(regexp)) {
if (!returnArray) { returnArray = [] }
returnArray.push(i);
}
}
}
return returnArray;
}
你爲什麼不在這兩種方式上時間?我懷疑在大多數情況下indexOf會更快,但測試比猜測更好。 – 2009-06-17 17:10:38
不要忘記,每個環境都可以不同。在Firefox中停留一段時間,您可能會獲得與Opera,Chrome或Safari不同的結果。我會在Internet Explorer中記錄它的時間,因爲它是這個軟件包的缺點 - 在IE中快速使用它,而且在其他地方應該足夠快。 – Nosredna 2009-06-17 17:13:34