Tema: en array
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/12/2004, 03:01
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
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!
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo