Buscando en una lista

En esta ocasión tenemos una lista de nombres y deseamos determinar si un nombre en concreto está en la lista, y si es así en que posición se encuentra. Si el nombre no está en la lista la función debe devolver un valor negativo.

Solución

<script>

function buscarItem(lista, valor){

var ind, pos;

for(ind=0; ind<lista.length; ind++)

   {

    if (lista[ind] == valor)

      break;

    }

pos = (ind < lista.length)? ind : -1;

return (pos);

}

 

var lista1 = new Array('Juan', 'Pedro', 'Luis', 'María', 'Julia');

var cad = 'María';

var pos = buscarItem(lista1, cad);

if (pos >=0)

   document.write(cad+' está en la posición '+ pos );

else

   document.write(cad+ ' no está.');

-->

</script>

Explicación

La lista se construye como un Array en el que almacenamos nombres.

La variable cad contiene el nombre que deseemos buscar.

La función funciona con dos parámetros: la lista de nombres y el valor a buscar, en ella hacemos un bucle para recorrer la variable lista hasta encontrar el nombre buscado, si lo encontramos detenemos el bucle con la instrucción break.

Si el bucle ha terminado sin encontrar el nombre la variable ind será igual a la longiutd del Array (recuerda que los índices van desde 0 a la longitud del array menos 1), mientras que si se ha encontrado el nombre su valor será menor que esa longitud.

Observa la sentencia despues del bucle: en pos ponemos el valor del ind si se ha encontrado el nombre y si no ponemos -1, es la forma abreviada de usar una sentencia if...else.