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

Con este ejemplo puedes ver como recorrer variables tipo array para acceder a sus componentes. Se trata de usar el tipo de datos array más que el objeto

Solución

<script>

function buscarItem(lista, valor){

let ind, pos;

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

   {

    if (lista[ind] == valor)

      break;

    }

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

return (pos);

}

 

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

let cad = 'María';

let 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  (línea 9) ponemos el valor de la posición del nombre si se ha encontrado y si no ponemos -1, es una forma abreviada de usar una sentencia if...else.