Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] No me quedó del todo claro como funciona indexOf( ) dentro de una sentencia IF.

No me quedó muy claro como funciona el ** indexOf( )** en el ejemplo que dio el profesor.

const destino = "Brasil";
const paisesDisponibles = ["Argentina", "Colombia", "Brasil", "Mexico", "España"];


if (paisesDisponibles.indexOf(destino) >= 0) {
    console.log("Está disponible");
} else {
    console.log("País, no disponible");
}
2 respuestas

Hola, básicamente el indexof lo que hace es buscar "Brasil" en el array paisesDisponibles y si lo encuentra devuelve la posición donde lo encontró (para el ejemplo seria la posición 2), por lo que la condición del if se cumple y ejecuta console.log("Está disponible");

la condición que evalúa el if seria esta:

if (2 >= 0) { console.log("Está disponible"); } else { console.log("País, no disponible"); }

Si se colocara un destino que no estuviera en el array por ejemplo: "Perú", el indexof devuelve un -1 y en ese caso no se cumple la condición del if , por lo que se ejecuta el console.log("País, no disponible"); del else.

if (-1 >= 0) { console.log("Está disponible"); } else { console.log("País, no disponible"); }

Hola! Existen diferentes funciones para los Arrays, por ejemplo: push( sirve para añadir un elemento a la lista, length( para medir la cantidad de elementos de la lista, y así también existe indexOf ( que devuelve la posición del elemento buscado, con valor tipo numérico).

Es decir:

const paisesDisponibles=["Argentina", "Brasil", "Uruguay", Paraguay,"Honduras"];

Argentina posición 0, Brasil 1, Uruguay 2,etc...

entonces

const destino = "Brasil";
paisesDisponibles.indexOf(destino)

Dará como resultado el valor numérico 1. Cómo consecuencia de este resultado la condición será verdadera, porque 1 es mayor a 0, y como resultado de cumplir dicha condición aparecerá "Está disponible".

Espero haberte ayudado junto a Daniel. Saludos