Hola otra vez:
Antes de contestar a JavierB, pondré otra variante del método buscar para obtener la posición de la última coincidencia, que simplemente recorre el array comenzando desde el final:
Código:
Array.prototype.buscarUltimo = function(esto) {
var yo = this;
for (var i = yo.length - 1; i >= 0; i --)
if (yo[i] == esto) return i;
return -1;
}
La intención de buscar el último, creo que puede ser útil para implementar acotaciones en arrays... Pero es algo complejo de explicar, aunque en el mensaje que mencionas trataré de hacerlo.
Ahora contestaré lo de el uso de la variable "mayor".
Aunque en este método no es algo necesario ya que la longitud del array no varía en el bucle, es una costumbre que he adquirido para intentar optimizar código.
Si la longitud del array variase en el bucle, podría no llegar al índice que yo quiero (pero no es el caso).
En un artículo que leí en una revista sobre optimización de código en php, recomiendan crear la variable mayor de esta manera, ya que no existe en php la propiedad length, y sí la función count(), y resulta que por cada paso del bucle for se llama a esa función y en grandes cantidades de datos (tampoco es el caso) se ejecutaría el bucle en más del doble del tiempo.
En javascript, si en vez de usar length, tienes que hacer uso de una función en la incrementación del bucle, también ocurriría (te puedo asegurar que lo he probado). Así que me estoy acostumbrando a realizar los bucles de esta manera.
No sé si me expliqué bien (espero que sí)
Bueno ¡Felicidades!