No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso Pr谩ctico de JavaScript

Curso Pr谩ctico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Condicionales

5/29
Recursos

Aportes 95

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Me gusta como JuanDa hace ver m谩s f谩cil JavaScript, hay algunos profesores qu茅 te arruinan la experiencia de aprender a programar, pero definitivamente Juan no es uno de ellos 鉂わ笍

Falto el condicional ternario

Hey!!
Aqu铆 una forma de como resolver el bonus sin usar condicionales:

opcion = "ExpertPlus" 

paquetes = ["Free","Basic","Expert","ExpertPlus"]

descripcion = ["Solo puede tomar dos cursos gratis","Puedes tomar casi todos los cursos durante un mes","puedes tomar todos los cursos durante un a帽o","t煤 y alguien m谩s pueden tomar todos los cursos durante un a帽o"]

let lugar = paquetes.indexOf(opcion)

function imprime(lugar){
    `Con una suscripci贸n ${paquetes[lugar]} entonces ${descripcion[lugar]}.`
}

imprime(lugar);

En pantalla:

Con una suscripci贸n ExpertPlus entonces T煤 y alguien m谩s pueden tomar todos los cursos durante un a帽o.

Condicionales

1锔.Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?

  • Son la forma en que ejecutamos un bloque de c贸digo u otro dependiendo de alguna condici贸n o validaci贸n.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

  • IF (else y else if), Switch El codicional if (con else y else if) nos permite hacer validaciones completamente distintas en cada validaci贸n o condional. En cambio, en el switch todos los cases se comparan con la misma variable o condici贸n que definimos en el switch.

驴Puedo combinar funciones y condicionales?

  • S铆. Las funciones pueden encapsular cualquier bloque de c贸digo, incluyendo condicionales.

2锔.Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:


const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
   case "Free":
       console.log("Solo puedes tomar los cursos gratis");
       break;
   case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
       break;
   case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
       break;
   case "ExpertDuo":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
       break;
}
if (tipoDeSuscripcion == 'Free') {
    console.log("Solo puedes tomar los cursos gratis");
} else if (tipoDeSuscripcion == 'Basic') {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion == 'Expert') {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} else if (tipoDeSuscripcion == 'ExpertDuo') {
    console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

Condicional ternario: 馃挌馃挌馃挌

Estaba aburrido de ver tantos console.log y me puse a jugar con los prompt y los alert.
Aqui dejo mi aporte
let tipoDeSuscripcion = prompt(鈥淐ual es tu suscripcion鈥);

switch (tipoDeSuscripcion) {
case 鈥淔ree鈥:
alert(鈥淪olo puedes tomar los cursos gratis鈥);
break;
case 鈥淏asic鈥:
alert(鈥淧uedes tomar casi todos los cursos de Platzi durante un mes鈥);
break;
case 鈥淓xpert鈥:
alert(鈥淧uedes tomar casi todos los cursos de Platzi durante un a帽o鈥);
break;
case 鈥淓xpertDuo鈥:
alert(鈥淭煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o鈥);
break;

gracias por tanto.

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un condicional?
Es una expresi贸n que nos permite evaluar dos o m谩s valores y poder realizar acciones en base al resultado de la expresi贸n.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
if 鈥 else鈥
se usa pasa evaluar una condici贸n, si esta condici贸n es verdadera ejecuta las acciones dentro del bloque del if en caso contrario ejecuta las acciones del bloque else
if 鈥 else if鈥
Se usa para evaluar m谩s de una condici贸n, si esta condici贸n es verdadera ejecuta las acciones dentro del bloque del if, en caso contrario comprueba que la condici贸n de la sentencia else if se cumple y de ser verdadera ejecuta las acciones de ese bloque.
switch
Permite evaluar multiples escenarios y tener una acci贸n por default en caso de que no se cumplan las condiciones evaluadas.
Ternary operator ()? : ;
Es una peque帽a sintaxis que prueba una condici贸n y devuelve un valor, si es true, y otro si es false
驴Puedo combinar funciones y condicionales?
Se pueden usar condicionales dentro de funciones. Tambien podemos ejecutar funciones en dependencia del resultado de las codicionales.
2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
   case "Free":
       console.log("Solo puedes tomar los cursos gratis");
       break;
   case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
       break;
   case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
       break;
   case "ExpertPlus":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
       break;
}


// ----- Solution ----------
if ( tipoDeSuscripcion === "Free" ) {
	console.log("Solo puedes tomar los cursos gratis");
} else if(  tipoDeSuscripcion === "Basic" ) {
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if(  tipoDeSuscripcion === "Expert" ) {
	 console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} else if(  tipoDeSuscripcion === "ExpertPlus" ) {
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
} else {
	console.log("Necesitas una suscripci贸n v谩lida")
}

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).
馃挕 Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays u objetos y un solo condicional. 馃槒

let  suscriptions = [ 
	{	
		type:"Free",
		message: "solo puedes tomar los cursos gratis"
	},
	{	
		type:"Basic",
		message: "puedes tomar casi todos los cursos de Platzi durante un mes"
	},
	{	
		type:"Expert",
		message: "puedes tomar casi todos los cursos de Platzi durante un a帽o"
	},
	{	
		type:"ExpertPlus",
		message: "t煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
	}
];

const mySub = "Basic";

const findSub = suscriptions.find( sub => sub.type === mySub );
const result = findSub !== undefined? findSub.message: "Necesitas una suscripci贸n v谩lida";
console.log(result);

no se si se encuentra bien pero yo realice esta prueba con array de objetos, y un flitro

function suscripcion (index){

let tipoSuscripcion = 
[
    {
     suscripcion : 'Free',
     message : 'Solo puedes tomar los cursos gratis',
    },
    {
     suscripcion : 'Basic',
     message : 'Puedes tomar casi todos los cursos de Platzi durante un mes',
    },
    {
     suscripcion : 'Expert',
     message : 'Puedes tomar casi todos los cursos de Platzi durante un a帽o',
    },
    {
     suscripcion : 'ExpertPlus',
     message: 'T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o',
    }
]
var optFiltrada = tipoSuscripcion.filter(function(filtro){ return filtro.suscripcion == index});
console.log(optFiltrada);
}

suscripcion('Free');

Excelente juan David, tu eres el maestro, aqui si falle.

Que es un condicional?
Son la forma en que ejecutamos un bloque de c贸digo u otro dependiendo de alguna condici贸n o validaci贸n.

Que tipos de condicionales existen en JavaScript y cuales son sus diferencias?
IF (else y else if) , Switch
el condicional IF (con el else y else if) nos permite hacer validaciones completamente distintas(si asi queremos) en cada validaci贸n o condicional.En cambio, en el switch todos los cases se comparan con la misma variable o condici贸n que definimos en el switch.
Puedo combinar funciones y condicionales?
Si. Las funciones pueden encapsular cualquier bloque de codigo, incluyendo condicionales.

Yo hice mi c贸digo as铆 aunque ahora me acabo de dar cuenta que se puede mejorar al preguntar el tipo de suscripci贸n que tienes jajaja 鈥淢entira es para hacer publicidad a Platzi鈥.

si las condiciones est谩n dentro de una funci贸n se puede escribir un return; al final de cada bloque de c贸digo de cada condicional, con el fin de terminar la ejecuci贸n de la funci贸n.

Nombre este man es un crack ojal谩 ense帽ara todos los cursos

Que tal este reto para practicar condicionles?

馃尅锔忦煂わ笍鈽侊笍馃導锔忊潉锔
Imagina que tienes una aplicaci贸n meteorol贸gica que muestra el clima actual. La aplicaci贸n utiliza emojis para representar diferentes condiciones clim谩ticas: el sol con una nube 鈽侊笍 representa un d铆a parcialmente nublado, la nube con gotas de lluvia 馃導锔 representa un d铆a lluvioso, y as铆 sucesivamente.

El reto es escribir un programa en JavaScript que le permita al usuario ingresar el emoji correspondiente a la condici贸n clim谩tica actual y mostrar un mensaje que describa la condici贸n en palabras. Por ejemplo, si el usuario ingresa el emoji de la nube con gotas de lluvia 馃導锔, el programa debe mostrar el mensaje 鈥淓st谩 lloviendo鈥.

var suscripcionesPlatzi = { 

  Free: "Solo puedes tomar los cursos gratis", 

  Basic: "Puedes tomar casi todos los cursos de Platzi durante un mes", 

  Expert: "Puedes tomar casi todos los cursos de Platzi durante un a帽o", 

  ExpertPlus: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o", 

}; 


function suscripcion(tipoDeSuscripcion) { 

  if (tipoDeSuscripcion === "Free" || tipoDeSuscripcion === "Basic" || tipoDeSuscripcion === "Expert" || tipoDeSuscripcion === "ExpertPlus") { 

    console.log(suscripcionesPlatzi[tipoDeSuscripcion]); 
  } 

} 
suscripcion("Free"); 

muy buena explicacion

Juan es muy claro y super en茅rgico lo que hace que la clase sea muy llevadera!

function imprimirDescripcion(tipoSuscripcion){
	if (tipoSuscripcion == 'Free') {
		console.log('Solo puedes tomar los cursos gratuitos')
	}else if (tipoSuscripcion == 'Basic') {
		console.log('Puedes tomar casi todos los cursos de Platzi')
	}else if (tipoSuscripcion == 'Expert') {
		console.log('Puedes tomar todos los cursos de Platzi')
	} else if (tipoSuscripcion == 'ExpertDuo') {
		console.log('Tu y alguien mas pueden tomar todos los cursas de platzi')
	} else {
		console.log('No existe esta suscripcion en platzi')
	}

llamado

imprimirDescripcion('Free');

Tipos de condicionales

  • If
  • else
  • Switch

tambien se puede usar solamente 鈥渋f鈥 en lugar de los "else if " y funciona igual, obviamente al final el else solamente y hasta ni se nesecita el else en algunos casos.

tambien existe un tercer condicional que se puede validar con un operador ternario, si estoy equivocado en algo por fa @juanDC corrigeme. saludos!

Hola! Hice lo siguiente, queda mucho m谩s bonito y corto que usar el if鈥lse if, adem谩s manda un mensaje cuando no la encuentra:

const tipoDeSuscripcion = "Basic";
const suscripciones = {
    "Free": "Solo puedes tomar los cursos gratis",
    "Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
    "Expert": "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
    "ExpertPlus": "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
};
let mensaje = suscripciones[tipoDeSuscripcion];
console.log(mensaje || "No existe esa suscripci贸n...");

Espero les sea 煤til, saludos!

Un condicional es una sentencia鈥 es una pregunta que lanzamos y espera un SI o un NO鈥 un True o False. Dependiendo de la respuesta hacemos una cosa u otra

Pero鈥 驴como es esa pregunta que espera el condicional?

Normalmente son comparaciones de las variables:

: mayor que
< : menor que
== : igual que
!= : diferente de

Pero tambien por ejemplo podemos preguntar si un valor existe en un Array con el .some()

驴Qu茅 tipos de condicionales hay?

la estructura if() else if() else

if (numero == 0) console.log(鈥渆l n煤mero es cero鈥)
else if (numero > 0) console.log(鈥渆l n煤mero es positivo鈥)
else console.log(鈥渆l n煤mero es negativo鈥)

el switch()
switch(opcion) {
case 1:
console.log(鈥渟eleccion贸 la opci贸n uno鈥)
break;
case 2:
console.log(鈥渟eleccion贸 la opci贸n dos鈥)
break;
}

El operador ternario
pregunta ? respuesta al True : resuesta al False
numero%2==0 ? console.log(鈥渆l n煤mero es par鈥) : console.log(鈥渆l n煤mero es impar鈥)

Tambi茅n encontramos algunas condiciones en sentencias como el for
for(variable, CONDICION, incremento o decremento)

otras condiciones son por ejemplo las pasadas a los metodos find, filter o some de un Array

Al final siempre son las preguntas que realizamos sobre las variables y con base en la respuesta tomamos una decisi贸n

Un comportamiento por defecto de los ifs es que en cuanto una condici贸n se toma como verdadera ya no se ejecutan los dem谩s else ifs o else (seg煤n el caso)

if (1 > 0) {
  console.log('code 1');
} else if (1 == 1) {
  console.log('code 2');
}
 let Free = "Free";
 let Basic = "Basic";
 let Expert = "Expert";
 let ExpertPlus = "ExpertPlus";

const tipoDeSuscripcion =(suscripcion)=>{
       return (suscripcion === Free ? console.log("Solo puedes tomar los cursos gratis"):
       suscripcion === Basic? console.log("Puedes tomar casi todos los cursos de Platzi durante un mes"):
       suscripcion === Expert? console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o"):
       suscripcion === ExpertPlus? console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"):
       console.log("No tiene una suscripcion"))
}

tipoDeSuscripcion(Basic)

Usar return como si fuera un break de switch en nuestros ifs (esto aplica solo si el if esta dentro de una funci贸n)

馃槂 Condicionales
1.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es una condicional?
Es aquella que incluye y lleva consigo un requisito.
驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
Tenemos a 鈥渋f, else, else if鈥 que eval煤an si se cumple o no uno o varios requisitos, muestras que el 鈥渙perador ternario鈥 eval煤a si se cumple o no un solo requisito, por otro lado, 鈥渟witch鈥 nos muestra varias opciones a ser evaluadas en forma de casos.
驴Puedo combinar funciones y condicionales?
S铆.

2.- Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
   case "Free":
       console.log("Solo puedes tomar los cursos gratis");
       break;
   case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
       break;
   case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
       break;
   case "ExpertPlus":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
       break;
}
// ---------- Soluci贸n ----------
const tipoDeSuscripcion = 'Basic';
if(tipoDeSuscripcion === 'Free')
	console.log("Solo puedes tomar los cursos gratis");
else if(tipoDeSuscripcion === 'Basic')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
else if(tipoDeSuscripcion === 'Expert')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
else if(tipoDeSuscripcion === 'ExpertPlus')
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");

3.- Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

const tipoDeSuscripcion = 'Basic';
if(tipoDeSuscripcion === 'Free')
	console.log("Solo puedes tomar los cursos gratis");
if(tipoDeSuscripcion === 'Basic')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
if(tipoDeSuscripcion === 'Expert')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
if(tipoDeSuscripcion === 'ExpertPlus')
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");

Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays y un solo condicional. 馃槒

const tipoDeSuscripcion = 'Basic';
const suscripcion = ['Free','Basic','Expert','ExpertPlus'];
const descripcion = ['Solo puedes tomar los cursos gratis',
'Puedes tomar casi todos los cursos de Platzi durante un mes',
'Puedes tomar casi todos los cursos de Platzi durante un a帽o',
'T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o'];
if(true)
	console.log(descripcion[suscripcion.indexOf(tipoDeSuscripcion)]);
let answer;

while(answer!= "12"){
    let question = prompt("What's the result of 3x4?");
    answer = question;
}

deberian poner como pre-requisito el curso de JavaScript b谩sico y as铆 poder tomar este curso, encuentro que llegar al m贸dulo 5 repasando conceptos del curso anterior es una p茅rdida de tiempo y recursos para los alumnos.

Me pasa que me siento muy nuevo con este conocimiento y algunos retos no se bien como afr贸ntalos y resultan ser mas sencillos de lo que pensaba, pero me comprometo a estudiar mucho hasta que pueda con cualquier reto.

Este es mi aporte, todav铆a me hace falta practicar mas como moverme en los arrays, pero con los distintos aportes ya lo estoy haciendo mejor.

const Subscripcion1="Expert";
let tipoDeSuscripciones=[{nombre:"Free", mensaje:"Solo puedes tomar los cursos gratis"},
    {nombre:"Basic", mensaje:"Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {nombre:"Expert", mensaje:"Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
    {nombre:"ExpertPlus", mensaje:"T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"},]


    let incluyeSubscripcion= tipoDeSuscripciones.find(function(Subscripcion){
        
        return Subscripcion1==Subscripcion.nombre
    })
    
    console.log(incluyeSubscripcion.mensaje)

Yo lo hize con una funcion y agregue un prompt para almacenar el argumento.

function Suscripcion(tipoSuscripcion) {

    tipoSuscripcion = prompt("Ingrese su tipo de Suscripcion");

    if (tipoSuscripcion == 'Free') {
        console.log("Solo puedes tomar cursos gratis"); 
    }else if (tipoSuscripcion == 'Basic') {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes"); 
    }else if (tipoSuscripcion == 'Expert') {
        console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o"); 
    }else if (tipoSuscripcion == 'Expert Duo') {
        console.log("T煤 y alguien mas pueden tomar TODOS los cursos de Platzi durante un a帽o"); 
    }

}

Suscripcion();

manera mas rapida de hacer condicionales鈥

var edad = 18;
var mensaje = (edad >= 18) ? "Eres mayor de edad" : "Eres menor de edad";

console.log(mensaje); 

La diferencia entre switch e if es b谩sicamente que en el switch no se pone el valor a validar en el encabezado del bloque sino en el cuerpo. Ejemplo:
Switch(suscripci贸n) Esto b谩sicamente checa el valor de suscripci贸n pero a煤n no le decimos con que tiene que comparar. El valor a contrastar o comparar se pone en los distintos cases.

En cambio en los if siempre se debe poner el valor a comparar en el encabezado del bloque.
El switch es una forma distinta de hacer lo mismo con alguna diferencia estructural

  • 驴Qu茅 es un condicional?
    Un condicional es una estructura de control que permite tomar decisiones en funci贸n de una condici贸n evaluada. Permite ejecutar diferentes bloques de c贸digo dependiendo si una expresi贸n es verdadera o falsa.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    En JavaScript, existen tres tipos de condicionales:

    • if: Permite ejecutar un bloque de c贸digo si la condici贸n especificada es verdadera. Si la condici贸n es falsa, se omite el bloque de c贸digo.
    • else if: Se utiliza despu茅s de un if o de otro else if para evaluar una nueva condici贸n si las anteriores son falsas.
    • else: Se utiliza despu茅s de un if o de un else if y se ejecuta si todas las condiciones anteriores son falsas.
  • 驴Puedo combinar funciones y condicionales?
    S铆, se pueden combinar funciones y condicionales. Puedes llamar a una funci贸n dentro de un bloque de c贸digo condicional para ejecutarla cuando se cumpla cierta condici贸n.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:

const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
   case "Free":
       console.log("Solo puedes tomar los cursos gratis");
       break;
   case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
       break;
   case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
       break;
   case "ExpertPlus":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
       break;
}
//mi Soluci贸n
const tipoDeSuscripcion = "Basic";

if (tipoDeSuscripcion === "Free") {
  console.log("Solo puedes tomar los cursos gratis");
} else if (tipoDeSuscripcion === "Basic") {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion === "Expert") {
  console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} else if (tipoDeSuscripcion === "ExpertPlus") {
  console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

Una posible solucion sin utilizar condicionales

/**
El mismo codigo anterior pero sin utilizar algun condicional
*/
let arrayTipoDeSuscripcion = ["Basic","Free","Expert","ExpertPlus"];
let arrayMessagesToUsers = {
    "Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
    "Free": "Solo puedes tomar los cursos gratis",
    "Expert": "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
    "ExpertPlus": "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
}

Object.freeze(arrayTipoDeSuscripcion);
Object.freeze(arrayMessagesToUsers);

let tipoDeSuscripcion = arrayTipoDeSuscripcion[1];

menssageToUser(tipoDeSuscripcion);

function menssageToUser(argument) {
    console.log("Cuenta: " + tipoDeSuscripcion + " -> " + arrayMessagesToUsers[tipoDeSuscripcion]);
}

Estoy utilizando el objeto Object.freeze les puede servir como caso de estudio para el manejo de objetos y arreglos.

5/27 Condicionales

Las condicionales son la forma de ejecutar un bloque de c贸digo u otro dependiendo de una condici贸n o validaci贸n.

En JavaScript existen los condicionales:

  • if, que incluyen else y else if

-Switch

La diferencia principal entre ellos es que el if con else y else if nos permiten hacer validaciones con diferentes variables, mientras que en el caso de switch todos los casos est谩n validando la misma condici贸n.

Con el if y sus variantes else y else if, podemos hacer valdiaciones comlpletamente distintas en cad condicional, mientras que en el switch todos los casos se comparan con la misma variable o condic贸n definida en el switch.

Si se pueden combinar funciones y condicionales. Las funciones pueden encapsular cualquier bloque de cpodigo, incluyendo condicionales. En muy buena idea combinarlos.

El switch compara una variable con diferentes casos y ejecuta el c贸digo correspondiente al caso que conicida con la variable.

En cambio, en una condicional if, cada condici贸n debe ser evaluada individualmente. Si la primera condici贸n no se cumple, se puede utilziar else o else if para evaluar otra condici贸n en su lugar.

La diferencia entre else y else if es que else se ejecuta autom谩ticamente su todas las condiciones anteriores fallan, mientras que else if s贸lo se ejecuta si la condici贸n en el if no se cumple y la condici贸n en el else if se cumple.

Tambi茅n se puede utilizar un return en una funci贸n para detener la ejecuci贸n del c贸digo despu茅s de una condici贸n.

Bonus con objeto:

const tipoSuscripcion = {
  Free: "Solo puedes tomar los cursos gratis",
  Basic: "Puedes tomar casi todos los cursos de Platzi durante un mes",
  Expert: "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
  ExpertPlus:
    "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o",
};

var aux = "Expert";

if (tipoSuscripcion.hasOwnProperty(aux)) {
  console.log(tipoSuscripcion[aux]);
}

Wuuuuuaaaauuuu Estoy aprendiendo como con plastilina.
Nunca lo hab铆a visto tan claro, y eso que he hecho como tres cursos de JavaScript.
Gracias Profe JuanDC.

Me encanta tu energ铆a para ense帽ar y lo f谩cil que haces ver los temas, me ha aclarado detallitos que no hab铆a comprendido cuando resolv铆 el test.

Dejo mis apuntes en Notion aqu铆! 馃槃

Apuntes

Usando solamente if

if (tipoDeSuscripcion == "Free" && tipoDeSuscripcion != "Basic" && tipoDeSuscripcion != "Expert" && tipoDeSuscripcion != "ExpertPlus") {
    console.log("Solo puedes tomar los cursos gratis");
} if (tipoDeSuscripcion == "Basic" && tipoDeSuscripcion != "Free" && tipoDeSuscripcion != "Expert" && tipoDeSuscripcion != "ExpertPlus") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} if (tipoDeSuscripcion == "Expert" && tipoDeSuscripcion != "Free" && tipoDeSuscripcion != "Basic" && tipoDeSuscripcion != "ExpertPlus") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} if (tipoDeSuscripcion == "ExpertPlus" && tipoDeSuscripcion != "Free" && tipoDeSuscripcion != "Basic" && tipoDeSuscripcion != "Expert") {
    console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}

Encapcsule la condicional en una funcion y este fue el resultado.

function suscripcion(tipoDeSuscripcion){
    if (tipoDeSuscripcion == 'free') {
    console.log("Solo puedes tomar los cursos gratis");
} else if (tipoDeSuscripcion == 'Basic') {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion == 'Expert') {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
} else if (tipoDeSuscripcion == 'ExperDuo') {
    console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
}
else {
    console.log("No tienes una suscripcion, vuelve cuando tengas una.")
}
}

solo hay que ejecutarlo definiendo un argumento para el parametro de la funcion suscripcion el cual al mismo tiempo es la variable tipoDeSuscripcion asi:

suscripcion('pajarito');

que da como resultado:
No tienes una suscripcion, vuelve cuando tengas una.

Condicionales

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es una condicional?

    Es una expresi贸n l贸gica para tomar decisiones o resolver validaciones sencillas, que devuelve un resultado booleano.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

    De tipo if (incluyendo else y else if) y switch. Con if podemos anidar varias condiciones y con switch damos opciones o casos varios de una vez para elegir.
    El operador ternario (condition)? true: false es una tercera opci贸n para resolver condiciones cortas.

  • 驴Puedo combinar funciones y condicionales?

    Si se pueden combinar, ser铆a tener un bloque dentro de otro.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia聽switch聽utilizando聽if,聽else聽y聽else if:

const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
case "Free":
       console.log("Solo puedes tomar los cursos gratis");
break;
case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
break;
case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
break;
case "ExpertPlus":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
break;
}

if (tipoDeSuscripcion == 'Free')
	console.log("Solo puedes tomar los cursos gratis");
else if (tipoDeSuscripcion == 'Basic')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
else if (tipoDeSuscripcion == 'Expert')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
else if (tipoDeSuscripcion == "ExpertPlus")
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
else
	console.log("Adquiere un tipo de suscripci贸n");

3锔忊儯 Replica el comportamiento de tu condicional anterior con聽if,聽else聽y聽else if, pero ahora solo con聽if聽(sin聽else聽ni聽else if).

var tipoDeSuscripcion;
if (tipoDeSuscripcion == 'Free')
	console.log("Solo puedes tomar los cursos gratis");
if (tipoDeSuscripcion == 'Basic')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
if (tipoDeSuscripcion == 'Expert')
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
if (tipoDeSuscripcion == "ExpertPlus")
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");

Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays y un solo condicional. 馃槒

let tipoDeSuscripcion = [
	{Free: 'Solo puedes tomar los cursos gratis'},
	{Basic: 'Puedes tomar casi todos los cursos de Platzi durante un mes'},
	{Expert: 'Puedes tomar casi todos los cursos de Platzi durante un a帽o'},
	{ExpertPlus: 'T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o'}
];

let miSuscripcion = tipoDeSuscripcion[1];

if (miSuscripcion == tipoDeSuscripcion[0])
	console.log("Solo puedes tomar los cursos gratis");
else if (miSuscripcion == tipoDeSuscripcion[1])
	console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
else if (miSuscripcion == tipoDeSuscripcion[2])
	console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
else if (miSuscripcion == tipoDeSuscripcion[3])
	console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
else
	console.log("Adquiere un tipo de suscripci贸n");

Easy

<code> 
let suscripcion = prompt('que tipo de suscripcion tienes, 1-. free, 2 basic, 3-. expert, 4-. expret duo');

    function validacion(){
        if(suscripcion == 1)
		{return "bienvenido esta suscripcion es de pruba"}
      
  else if(suscripcion == 2)
		 {return "bienbenido esta suscripcion es basic solo por 30 dias "}
      
  else if (suscripcion == 3)
		{ return "bienbenido esta suscripcion es expert solo por 3 meses "}
     
   else if( suscripcion == 4)
		 {return "bienbenido esta suscripcion es expert duo solo por 1 a帽o "}
    }

    alert(validacion());

let tipoDeSuscripcion = prompt (" 驴Qu茅 tipo de suscripcion tienes?  Free, Basic, Expert, ExpertPlus")

if (tipoDeSuscripcion === "Free"){
    document.write("Solo puedes tomar los cursos gratis");
    
}

else if (tipoDeSuscripcion === "Basic"){
    document.write("Puedes tomar casi todos los cursos de Platzi durante un mes");
   
}

else if (tipoDeSuscripcion === "Expert"){
    document.write("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
    
}

else if (tipoDeSuscripcion === "ExpertPlus"){
    document.write("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");

}


else {
document.write ("Ingresa valores validos")
    
}



Chicos para que entienda un poco m谩s el Switch

let pregunta = prompt("Que tipo de suscripcion es?");
switch (pregunta) {
    case 'free':
        document.write(" Ya que eres Free, solo puedes tener acceso a estos cursos");
        break;
    case 'premium':
        document.write("El Premium, tienes acceso a todos los cursos");
        break
    default:
        document.write("Lo sentimos, no tenemos ese tipo de cuenta");
        break;
}

Saludos 馃槃

Aqui mi aporte al bonus usando objetos y 1 condicional

let mensajes = {
  Free: "Solo puedes tomar los cursos gratis",
  Basic: "Puedes tomar casi todos los cursos de Platzi durante un mes",
  Expert: "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
  ExpertPlus: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
}
const tipoDeSuscripcion = "Basic";
if(!!mensajes[tipoDeSuscripcion]) {
  console.log(mensajes[tipoDeSuscripcion]);
}

Hay un impostor en esta clase, al profe Juan le gusta usar comillas sencillas en JS, sin embargo, hay bloques de c贸digo con comillas dobles. 馃槺

const tipoDeSuscripcion = "Basic";

//Switch
switch (tipoDeSuscripcion) {
    case "Free":
        console.log("Solo puedes tomar cursos gratis");
        break;
    case "Basic":
        console.log("Puedes tomar casi todos los curso durante un mes");
        break;
    case "Expert":
        console.log("Puedes tomar casi todos los cursos durante un a帽o");
        break;
    case "ExpertDuo":
        console.log("Puedes tomar todos los cursos tu y alguien mas por un a帽o");
        break;
    default:
        console.log("No tienes suscripcion");
}


//If
if (tipoDeSuscripcion == "Free") {
    console.log("Solo puedes tomar cursos gratis");
} else if (tipoDeSuscripcion = "Basic") {
    console.log("Puedes tomar casi todos los curso durante un mes");
} else if (tipoDeSuscripcion == "Expert") {
    console.log("Puedes tomar casi todos los cursos durante un a帽o");
} else if (tipoDeSuscripcion == "ExpertDuo") {
    console.log("Puedes tomar todos los cursos tu y alguien mas por un a帽o");
} else {
    console.log("No tienes suscripcion");

Practicando de nuevo. Ah铆 les va:

const resultadoDelExamen = 'Cinco';
if(resultadoDelExamen == 'Cinco'){
    console.log("Tu resultado es 5 en el examen, reflexiona el por qu茅 de tu resultado. Dej谩me proporcionate estos materiales para que refuerces y puedas obtener una calificaci贸n aprovatoria.");
} else if(resultadoDelExamen == 'siete'){
    console.log("Tu resultado es 7 en el examen, te falt贸 1 punto para poder aprobar el examen. Te recomiendoe stos materiales e instrumentos para que refuerces los aprendizajes que faltan por concretar.")
} else if(resultadoDelExamen == 'Nueve'){
    console.log("Tu resultado es 9 en el examen, es casi perfecto. De todas formas te sugiero aprender lo faltante, mira estos materiales y pr谩ctica.")
} else if(resultadoDelExamen == 'Diez'){
    console.log("Tu resultado es 10 en el examen, eres la nueva persona m谩s inteligente del mundo. 隆Felicidades!.")
}

Hay un operador que podemos usar como condicional del que no se habla en esta clase, pero quer铆a tocarlo de igual manera por si a alguien le puede ser de ayuda, y es el operador ternario, y es simplemente un signo de interrogaci贸n ?

Este operador ternario nos sirve para hacer un if y un else de una sola vez, se puede aplicar de la siguiente manera

condition ? true : false;

//De esta manera podemos decir 

let numero = 1;

let resultado = numero === 1 ? console.log("S铆 soy un uno") : console.log("No, no soy un uno");

//Y nos regresar铆a en consola "S铆 soy un uno

La manera de leer este operador con el ejemplo anterior, ser铆a la siguiente: Tengo una variable llamada resultado, cuyo valor ser谩 la condici贸n a evaluar, si mi condici贸n (en este caso mi variable numero) es estrictamente igual a 1 ejecuta console.log(鈥淪铆, soy un uno鈥 y si no ejecuta console.log(鈥淣o, no soy un uno鈥); Ac谩 les dejo la documentaci贸n

  • 驴Qu茅 es un condicional?

Es la ejecucion o no de un bloque de codigo si se cumple alguna validacion o condicional.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

If (else y else if), switch, operadores logicos (AND, OR, NOT) y operador ternario (?).

Usamos switch cuando tenemos que usar muchos 鈥渆lse if鈥, la principal diferencia con if es que en el switch validamos diferentes cases de una sola variable o condicion, con if podemos realizar validaciones completamente diferentes en c/ variable o condicional.

Los operadores l贸gicos nos permite validar multiples condiciones sin escribir declaraciones If, else anidadas.

  • 驴Puedo combinar funciones y condicionales?

Si.

Utilizando condicionales y funci贸n tipo fecha

const tipoDeSuscripcion = (miSuscripcion)=>{
    if(miSuscripcion == "Free"){
        document.write("Solo puedes tomar cursos gratis " + "<br>");
    } else if(miSuscripcion == "Basic"){
        document.write("Puedes tomar casi todos los cursos de Platzi durante un mes" + "<br>");
    } else if(miSuscripcion == "Expert"){
        document.write("Puedes tomar casi todos los cursos de Platzi durante un a帽o" + "<br>");
    } else if(miSuscripcion == "ExpertDuo"){
        document.write("Tu y otra persona pueden tomar todos los cursos de Platzi durante un a帽o" + "<br>");
    } else{
        document.write("Estas tratando de ingresar una suscripci贸n que no pertenece a los programas de Platzi" + "<br>");
        document.write("Que esperas para suscribirte en los programas de Platzi. Nunca Pares de Aprender")
    }
}

tipoDeSuscripcion("Free");
tipoDeSuscripcion("Basic");
tipoDeSuscripcion("Expert");
tipoDeSuscripcion("ExpertDuo");
tipoDeSuscripcion("Master");
Respuestas muy interesantes, me falt贸 poner el else, ya que solo puse if y pues el else tambi茅n contar铆a, Ah y viendo un comentario tambi茅n falto el condicional ternatio, aunque eso me parece un poco m谩s avanzado, salu2 鉁岋笍
const tipoDeSuscripcion = "Expert";

if (tipoDeSuscripcion === "Free") {
	console.log('Tu tipo de suscripcion es... Free');
} else if (tipoDeSuscripcion === "Basic") {
	console.log('Tu tipo de suscripcion es... Basic');
} else if (tipoDeSuscripcion === "Expert") {
	console.log('Tu tipo de suscripcion es... Expert');
} else if (tipoDeSuscripcion === "Expert Duo") {
	console.log('Tu tipo de suscripcion es... Expert Duo');
} else {
	console.log("No estas suscrito al programa");
}

![](https://scontent.fbog2-4.fna.fbcdn.net/v/t39.30808-6/382595133_2310294622691734_7818953510188212448_n.jpg?_nc_cat=100\&ccb=1-7&_nc_sid=4c1e7d&_nc_eui2=AeGyGGIubuAIhzVDAfvY3VfOHSD4ac5rZHsdIPhpzmtke2gaMAts0M3TC8TFWTQZ69Q96MtS3gIz9LnIAiJz5336&_nc_ohc=G-I-A4JVvf8AX9Ndzei&_nc_ht=scontent.fbog2-4.fna\&oh=00_AfBxyigJT-UIAHIqfdN2KPDGtRPX8y9b56Jk2VYZyEBjvQ\&oe=651F9BC2)
As铆 hice el primer **ejercicio**: ```js let suscripciones = { "Free": "Solo puedes tomar los cursos gratis", "Basic": "Puedes tomar casi todo los cursos de Platzi durante un mes", "Expert": "Puedes tomar casi todos los cursos de Platzi durante un a帽o", "ExpertDuo": "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o" } function validatePlan(){ let tipoDeSuscripcion = prompt("Tipo de suscripcion?"); return tipoDeSuscripcion in suscripciones ? suscripciones[tipoDeSuscripcion] : "Que dijiste???"; } ```

Falt贸 el operador ternario 鈥?鈥 en la pregunta de los condicionales.

para explicar bien Java Script el mejor es el profe Freddy Vega total!!
al profe Juanda le falta ponerse serio en las explicaciones y dejar de gesticular tanto, salta en la silla me da risa y piedra ver los gestos, que m谩s podemos hacer. As铆 mismo fue en el curso b谩sico de programaci贸n p贸ngale un poco de seriedad a la cuesti贸n

Profe @Juan 鈥 Ud es grande!!!

Muy buenas respuestas, en algunas conmigo lo expresaba de otra manera pero a帽ad铆 las tuyas aparte para complementar. Eso es bueno ya que aceptamos que no solo existe nuestro punto si no muchos.

buena clase

un aporte es que esta bien calida la clase el profe lo explica bien pero si pudiera un poco explicar paso a paso estaria mas genial . pero esta buena la clase . Saludos

Condicionales
1.- Responde:

  • 驴Qu茅 es un condicional?
    Es una estructura de control, que valida diferentes expresiones para realizar diferentes acciones.

  • 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?
    IF (if, else if, else).- Eval煤a si una expresici贸n es verdadera o falsa, dependiendo de eso hace o no hace algo.
    SWITCH .- Otra estructura de control, con diferencia que se eval煤an los valores de la expresi贸n en casos.

  • 驴Puedo combinar funciones y condicionales?
    Si. Puede haber condicionales dentro de una funci贸n o funci贸n en una condicional.

2.- Replica el comportamiento del siguiente c贸digo en switch a una sentencia con if, else if y else:

3.- Replica el comportamiento ahora solo con if:

!! Hola, muchas gracias , me quedo super claro la diferencia entre if() {
}else ; y
if(){
}else if ;
gracias que vacano es cuando se entiende!

****Condiconal Ternaria
**
**Una expresi贸n condicional ternaria, tambi茅n conocida como operador ternario, es una alternativa compacta a una instrucci贸n if/else. Se escribe en una sola l铆nea y tiene la siguiente sintaxis:

<code>
condici贸n ? expresi贸n1 : expresi贸n2

//ejemplo:
let age = 20;
let status = age >= 18 ? "Adulto" : "Menor de edad";
console.log(status); // output: "Adulto"

En este caso, la condici贸n age >= 18 es evaluada, y dado que es verdadera, se asigna el valor de 鈥淎dulto鈥 a la variable 鈥渟tatus鈥. Si la condici贸n hubiera sido falsa, se habr铆a asignado el valor de 鈥淢enor de edad鈥.

en este curso si le entiendo, y explica muy bien, pero en el curso gratis de programaci贸n ( con el proyecto de mokepon) me enredo todo

Intente hacer el bonus鈥spero este bien 馃榿

//CON ARRAYS
let tipoDeSuscripcion = "Free";
let typeSuscription = ["Free","Basic","Expert","ExpertPlus"];
let beneficio = ["Solo puedes tomar los cursos gratis","Puedes tomar casi todos los cursos de Platzi durante un mes","Puedes tomar casi todos los cursos de Platzi durante un a帽o","T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"];

for (let i = 0; i < typeSuscription.length; i++) {
    if(typeSuscription[i]==tipoDeSuscripcion){
        console.log(beneficio[i]);
    }
}

//CON OBJETOS
class typeSuscription {
    constructor(plan,beneficio){
        this.plan = plan;
        this.beneficio = beneficio;
    }
}

let tipoDeSuscripcion = "Free";

let free = new typeSuscription("Free","Solo puedes tomar los cursos gratis");
let basic = new typeSuscription("Basic","Puedes tomar casi todos los cursos de Platzi durante un mes");
let expert = new typeSuscription("Expert","Puedes tomar casi todos los cursos de Platzi durante un a帽o");
let expertPlus = new typeSuscription("ExpertPlus","T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");

if (free.plan == tipoDeSuscripcion){
    console.log(free.beneficio);
}

El tip de terminar un if dentro de una funci贸n no lo conoc铆a. Anotado para el libro de la vida 馃槄.

condicionales!

Pues, pues, creo que se puede hacer a punta de puros if, con las mismas normas, no?

Este profe me da miedo, es bien alegre, r谩pido, charlatan, algo no cuadra 馃槖

驴Qu茅 es un condicional?

Un condicional es una estructura de control de flujo de c贸digo que permite tomar diferentes caminos dependiendo de ciertas condiciones.
.

驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

existen cuatro tipos de condicionales: if, else if, else y switch. El if se utiliza para evaluar una condici贸n y, en caso de ser verdadera, ejecutar un bloque de c贸digo. El else if se utiliza para encadenar m煤ltiples condiciones despu茅s del if inicial y el else se utiliza para ejecutar un bloque de c贸digo si la condici贸n es falsa. Switch nos deja agregar una variable para validarla por medio de casos.
.

驴Puedo combinar funciones y condicionales?

S铆, se pueden combinar funciones y condicionales en JavaScript. De hecho, es muy com煤n hacerlo. Por ejemplo, se puede utilizar una funci贸n para realizar un c谩lculo y luego utilizar un condicional para determinar qu茅 hacer con el resultado del c谩lculo. Tambi茅n se pueden utilizar funciones para validar la entrada del usuario antes de ejecutar un condicional para determinar qu茅 acci贸n tomar.

Por si quereis hacerlo con diccionario:

let tipos = {
    "Free": "Solo puedes tomar los cursos gratis",
    "Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
    "Expert": "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
    "ExpertDuo": "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
}

const tipoDeSuscripcion = "Basic"

for (i in tipos){
    if (i == tipoDeSuscripcion){
        console.log(`Tienes un plan ${i}: ${tipos[i]}`)
    } 
}

y a seguir aprendiendoooo

Condicionales

// 1 ** Responde las siguientes preguntas en la secci贸n de comentarios:

//驴Qu茅 es un condicional?

// Definicion Natural 

/*Un condicional es una estructura gramatical en la que se plantea una situaci贸n hipot茅tica o posible, y se establece una 
relaci贸n de dependencia entre una condici贸n y una consecuencia.

Los condicionales se expresan mediante el uso de palabras o expresiones como "si", "en caso de que", "a menos que", entre 
otras, que introducen la condici贸n, seguidas de la consecuencia que se derivar铆a de esa condici贸n. Por ejemplo: "Si 
estudias, sacar谩s buenas notas" o "En caso de que llueva, lleva un paraguas".

Existen diferentes tipos de condicionales, dependiendo de la naturaleza de la relaci贸n establecida entre la condici贸n y la 
consecuencia, y del grado de certeza o probabilidad de que se cumpla la condici贸n. Entre los tipos de condicionales m谩s 
comunes se encuentran los condicionales simples (presente y futuro), los condicionales perfectos, los condicionales mixtos,
entre otros.*/

// 驴Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?

    /*En JavaScript, los condicionales son estructuras de control de flujo que permiten ejecutar diferentes bloques de c贸digo 
    dependiendo de si se cumple o no una determinada condici贸n.

    Los condicionales en JavaScript se expresan mediante la palabra reservada "if" seguida de una condici贸n que se eval煤a como 
    verdadera o falsa. Si la condici贸n es verdadera, se ejecuta el bloque de c贸digo que se encuentra dentro de las llaves "{}" 
    que siguen al "if". Si la condici贸n es falsa, se omite este bloque y se contin煤a con la ejecuci贸n del programa.

    Por ejemplo, el siguiente c贸digo muestra un ejemplo de un condicional simple en JavaScript que verifica si una variable 
    llamada "edad" es mayor o igual a 18 y, en caso afirmativo, muestra un mensaje en la consola:*/

    var edad = 20;

    if (edad >= 18) {
      console.log("Eres mayor de edad");
    }

    //Adem谩s del "if", tambi茅n existen otras estructuras de control de flujo condicionales en JavaScript, como el "if-else" (que 
   // permite ejecutar un bloque de c贸digo si la condici贸n es verdadera y otro bloque si la condici贸n es falsa), el "else if" (
    //que permite agregar m谩s condiciones a evaluar), y el "switch" (que permite seleccionar entre varias opciones de c贸digo 
    //dependiendo del valor de una expresi贸n).


// 驴Puedo combinar funciones y condicionales?

    //S铆, es posible combinar funciones y condicionales en JavaScript. De hecho, es muy com煤n utilizar las estructuras de control
    //de flujo condicionales dentro de las funciones para tomar decisiones y ejecutar diferentes acciones en funci贸n de una 
    //condici贸n determinada.

    //Por ejemplo, podr铆as escribir una funci贸n que tome un n煤mero como par谩metro y determine si es positivo, negativo o cero 
    //utilizando un condicional "if-else". El siguiente c贸digo muestra un ejemplo de una funci贸n llamada "determinarSigno" que 
   // utiliza un condicional "if-else" para determinar el signo del n煤mero que se le pasa como par谩metro y devuelve un mensaje 
    //correspondiente:

    function determinarSigno(numero) {
      if (numero > 0) {
        return "El n煤mero es positivo";
      } else if (numero < 0) {
        return "El n煤mero es negativo";
      } else {
        return "El n煤mero es cero";
      }
    }

    console.log(determinarSigno(5)); // Output: "El n煤mero es positivo"
    console.log(determinarSigno(-3)); // Output: "El n煤mero es negativo"
    console.log(determinarSigno(0)); // Output: "El n煤mero es cero"


/* 2 **  Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:*/

/*const tipoDeSuscripcion = "Basic";

switch (tipoDeSuscripcion) {
   case "Free":
       console.log("Solo puedes tomar los cursos gratis");
       break;
   case "Basic":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
       break;
   case "Expert":
       console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
       break;
   case "ExpertPlus":
       console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
       break;
}*/


    function suscripcion(tipoDeSuscripcion){
      if (tipoDeSuscripcion === "Basic"){
        return "Puedes tomar casi todos los cursos de Platzi durante un mes";
      }else if (tipoDeSuscripcion === "Free"){
        return "Solo puedes tomar los cursos gratis";
      }else if (tipoDeSuscripcion === "Expert"){
        return "Puedes tomar casi todos los cursos de Platzi durante un a帽o";
      }else if (tipoDeSuscripcion === "ExpertPlus"){
        return "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
      }
    }

    console.log(suscripcion("Basic"))

/*3 ** Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).*/

    const tipoDeSuscripcion = "Basic";

    const mensajes = {
      "Free": "Solo puedes tomar los cursos gratis",
      "Basic": "Puedes tomar casi todos los cursos de Platzi durante un mes",
      "Expert": "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
      "ExpertPlus": "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
    };

    console.log(mensajes[tipoDeSuscripcion] ? mensajes[tipoDeSuscripcion] : "Tipo de suscripci贸n no v谩lida");

/*En este ejemplo, se define un objeto 'mensajes' que contiene cada posible valor de la variable 'tipoDeSuscripcion' como clave y el mensaje correspondiente como valor. Luego, se utiliza el operador ternario '?'' para imprimir el mensaje correspondiente si 'tipoDeSuscripcion' existe en el objeto 'mensajes'. Si no existe, se imprimir谩 el mensaje "Tipo de suscripci贸n no v谩lida".*/


/*Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays u objetos y un solo condicional.*/

    const tipoDeSuscripcion = "Basic";

    const suscripciones = [
      ["Free", "Solo puedes tomar los cursos gratis"],
      ["Basic", "Puedes tomar casi todos los cursos de Platzi durante un mes"],
      ["Expert", "Puedes tomar casi todos los cursos de Platzi durante un a帽o"],
      ["ExpertPlus", "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"]
    ];

    const mensaje = suscripciones.find((subscripcion) => subscripcion[0] === tipoDeSuscripcion)?.[1] || "Tipo de suscripci贸n no v谩lida";

    console.log(mensaje);

/*En este ejemplo, se define una matriz de suscripciones 'suscripciones' que contiene una submatriz para cada tipo de suscripci贸n. La submatriz incluye el tipo de suscripci贸n en la primera posici贸n y el mensaje correspondiente en la segunda posici贸n.

Luego, se utiliza el m茅todo 'find()' para buscar el tipo de suscripci贸n correspondiente dentro de la matriz de suscripciones. Si se encuentra una submatriz correspondiente, se devuelve su segundo elemento (el mensaje). Si no se encuentra una coincidencia, el operador de anulaci贸n opcional '?'. devuelve 'undefined', y el operador de fusi贸n nula '||'' establece el mensaje predeterminado "Tipo de suscripci贸n no v谩lida". En general, esta t茅cnica es similar a utilizar un objeto, pero en lugar de claves y valores, se utiliza una matriz de pares clave-valor.*/

<let tipoDeSuscripcion = "green";

if(tipoDeSuscripcion == "Basic") {
    console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
} else if (tipoDeSuscripcion == "Expert") {
    console.log("Puedes tomar todos los cursos de platzi durante un a帽o");

} else if (tipoDeSuscripcion == "ExpertPlus") {
    console.log("Tu y alguien mas pueden tomar todos los cursos de platzi durante un a帽o");
    
}
else if (tipoDeSuscripcion == "free") {
console.log("Solo puedes tomar los cursos gratis");

}else {
console.log("No encontramos ningun tipo de suscripcion");
}
> 

yo intente hacer ese bonus del profe y me quedo haci

   const tipoDeSuscripcion = [
       {nombre :"Basic", descripcion : "Puedes tomar casi todos los cursos de Platzi durante un mes"},
       {nombre :"Free", descripcion : "Solo puedes tomar los cursos gratis"},
       {nombre :"Expert", descripcion : "Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
       {nombre :"Expertplus", descripcion : "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"},
       ]
   let typeSub = "Free";
   let encuentraSub = tipoDeSuscripcion.find(function(sub){
       return sub.nombre === typeSub})
   console.log (enc

Hola a todos, ac谩 est谩 la soluci贸n al bonus de la clase:

let tipoDeSuscripcion = "Basic";

let tiposDeSuscripciones = [
	{tipoSuscripcion: "Basic", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un mes"},
	{tipoSuscripcion: "Expert", mensaje: "Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
	{tipoSuscripcion: "ExpertPlus", mensaje: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"},
	{tipoSuscripcion: "Free", mensaje: "Solo puedes tomar los cursos gratis"}
];

function imprimirSuscripcion (suscripcion) {
    let confirmarSuscripcion = tiposDeSuscripciones.find(function (suscripciones){
        return suscripciones.tipoSuscripcion == suscripcion;
    });
    if (confirmarSuscripcion !== undefined) {
        console.log(confirmarSuscripcion.mensaje);
    }
    else {
        console.log("La suscripci贸n no existe");
    }
}

imprimirSuscripcion(tipoDeSuscripcion);

Creo que falto el if ternario

  • 2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia switch utilizando if, else y else if:
    _

Me cuesta enterder cuando una funcion utiliza otra funcion.

3锔忊儯 Replica el comportamiento de tu condicional anterior con if, else y else if, pero ahora solo con if (sin else ni else if).

馃挕 Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays u objetos y un solo condicional. 馃槒

const tipoDeSuscripcion = {
	free: "Solo puedes tomar los cursos gratis",
	Basic: "Puedes tomar casi todos los cursos de Platzi durante un mes",
	Expert: "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
	ExpertPlus: "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"
}
const suscripcion = "Basic";

for(let clave in tipoDeSuscripcion){
	if(clave == suscripcion) console.log(tipoDeSuscripcion[clave]);
}

mucha energ铆a cuando explica Juan dc, si me cost贸 acostumbrarme a las clases con este tipo de energ铆a, pero una vez acostumbrado, se es m谩s din谩mica la clase, me agrada

Los condicionales son la forma en que ejecutamos un bloque de c贸digo u otro dependiendo da alguna condici贸n o validaci贸n

No me parece explicas rapidisimo tuve que colocar el video en 0.85x para darte bola.

Qu茅 es un condicional?.

Es la forma en como controlamos el flujo de ejecuci贸n de nuestro c贸digo, es decir, si se cumple una condici贸n ejecutamos un bloque de c贸digo, si no se cumple ejecutamos otro bloque de c贸digo.

Qu茅 tipos de condicionales existen en JavaScript y cu谩les son sus diferencias?.

If (else y else if) y Switch.

El condicional (else y else if) nos permite permite hacer validaciones completamente distintas en cada condici贸n. En cambio, en el condicional switch todos los cases se comparan con la misma variables que definimos en el switch.

Qu茅 es un operador ternario?.

Es una forma abreviada de escribir un condicional if (else).

驴Qu茅 tipo de condicionales hay en JS y cuales son sus diferencias?

驴Que es un condicional?

Yo me confund铆 en los condicionales, hab铆a entendido lo siguiente:

驴Qu茅 es un condicional?: es evaluar un valor y determinar si es false o true

驴Qu茅 tipos de condicionales existe en JavaScript?: igual que, mayor que, menor que, etc.

Los if, for, while y switc, son estructuras de control que realizan una acci贸n en funci贸n de una condici贸n.

Esta es mi respuesta a la pregunta Bonus:

const userSub = "Free";
const subsInfo = {
  Free: "Solo puedes tomar los cursos gratis",
  Basic: "Puedes tomar casi todos los cursos de Platzi durante un mes",
  Expert: "Puedes tomar casi todos los cursos de Platzi durante un a帽o",
  ExpertPlus:
    "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o",
};

function verifySubscription(subType) {
  Object.keys(subsInfo).forEach((sub) => {
    if (subType === sub) {
      console.log(subsInfo[sub]);
    }
  });
}

verifySubscription(userSub);

Los operadores l贸gicos (AND, OR, NOT) y el operador ternario (?). Tengo entendido que tambi茅n entran en la definici贸n de condicionales.

Condicionales


  • Una condicional es una operaci贸n donde se ejecuta la sentencia si la condici贸n especifica es verdadera o falsa.
  • Existen 3 tipos de condicionales - If鈥lse = si esto es verdad 鈥渆jecuta鈥 si no, 鈥渆jecuta esto鈥. Pueden anidarse varios if鈥lse ; - Switch = trabaja con casos mientras ese caso que le pasamos como parametro no sea cierto ir谩 leyendo los otros cases hasta encontrar el que coincida. Tambien tiene una opcion default si los casos no coinciden. ; y el - operador ternario ?: en una sola linea valida si una condici贸n es true or false. numeros.length >= 5 ? 鈥淰amos los numeros鈥 : "Me falta gente鈥
  • Dentro de las funciones podemos usar las condiciones para que en dado caso sea una opci贸n u otra se ejecute una pieza de c贸digo.

2锔忊儯 Replica el comportamiento del siguiente c贸digo que usa la sentencia聽switch
聽utilizando聽if
,聽else
聽y聽else if
:

function newFunction(tipoDeSuscripcion) {
    if (tipoDeSuscripcion === "Basic"){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
        }
        else if (tipoDeSuscripcion === "Expert"){
            console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o");
        }
        else if(tipoDeSuscripcion === "ExpertPlus"){
            console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
        }
        else{
            console.log("Solo puedes tomar los cursos gratis");
         }
    }
newFunction();

3锔忊儯 Replica el comportamiento de tu condicional anterior con聽if,聽else聽y聽else if, pero ahora solo con聽if聽(sin聽else聽ni聽else if).

function newFunction(tipoDeSuscripcion){
    if (tipoDeSuscripcion == "Free"){
        console.log("Solo puedes tomar los cursos gratis");
    }
    if (tipoDeSuscripcion == "Basic"){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un mes");
    }
    if (tipoDeSuscripcion == "Expert"){
        console.log("Puedes tomar casi todos los cursos de Platzi durante un a帽o"); 
    }
    if (tipoDeSuscripcion == "ExpertPlus"){
        console.log("T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o");
    }
}

Bonus: si ya eres una experta o experto en el lenguaje, te desaf铆o a comentar c贸mo replicar este comportamiento con arrays y un solo condicional. 馃槒

const tipoDeSuscripcion = [
    {nombre : "Free", mensaje : "Solo puedes tomar los cursos gratis" },
    {nombre : "Basic", mensaje : "Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {nombre : "Expert", mensaje : "Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
    {nombre : "ExpertPlus", mensaje : "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"},
]

const suscripcion = "Free";

if (tipoDeSuscripcion[0]){
    console.log(tipoDeSuscripcion[0].mensaje);
}else{
    console.log("No tienes suscripci贸n")
}