Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/11/2014, 21:53
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años, 1 mes
Puntos: 260
Sonrisa Respuesta: DUDA: indexOf()-lastIndexOf()

Hola,

Cita:
Iniciado por Beatzoo Ver Mensaje
... Pero me vas a perdonar, pero sigo sin entender el funcionamiento, porque segun me dices, los dos metodos son iguales, solo que uno empieza a buscar por la derecha y el otro por la izquierda. Pero entonces, segun mi logica, los indices para "apple" con un lastIndexOf serian 0 o 2, pero un 3? No lo pillo, seguro es una tonteria, esto me pasa muy a menudo me encanta liarme gratuitamente
Creo que posiblemente te confunde porque olvidaste que los índices comienzan de 0, como indica Alexis88 en su post, aunque creo que le hizo falta mencionarlo mas claro.

Código:
Array(
    0 => 'oranges',
    1 => 'apples',
    2 => 'pears',
    3 => 'apples'
)
Si usas indexOf('apples') te va a devolver 1, porque ese es su índice en la lista, si usas lastIndexOf('apples') te va a devolver 3 porque ese es su índice en la lista, de la última vez que aparece 'apples'.

Lo de agregar un parámetro adicional a los métodos ya es un agregado al mismo funcionamiento anterior, solamente que inicia la búsqueda donde le indiques, no desde el principio o el final dependiendo si es indexOf o lastIndexOf. En ese caso también es muy importante que devuelva el índice del elemento porque te sirve en la misma función.

lastIndexOf('apples', lastIndexOf('apples'));

En ese caso puedes usarlo en un bucle que vaya buscando todas las ocurrencias del elemento consecutivamente.

Saludos,