Ich habe diese Array.prototype auf meiner Seite und es scheint eine Menge Verarbeitungszeit Saugen bis werden:Was hat eine höhere Leistung in großen Schleifen verwendet: .IndexOf (str) oder .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;
}
Warum tust du es nicht in beide Richtungen? Ich vermute, dass indexOf in den meisten Fällen schneller sein wird, aber es ist besser zu testen als zu vermuten. –
Vergessen Sie nicht, dass jede Umgebung anders sein kann. Zeit es in Firefox und Sie können ein anderes Ergebnis als in Opera, Chrome oder Safari wetten. Ich würde es im Internet Explorer tun, da es das Gerümpel der Packung ist - schnell in IE und es sollte überall sonst schnell sein. – Nosredna