隆Te damos la bienvenida a este reto!

1

隆Bienvenido al mundo de JavaScript!

D铆a 1

2

Variables, funciones y sintaxis b谩sica

3

Tipos de datos

4

Playground - Retorna el tipo

5

Tipos de datos - pt 2

D铆a 2

6

Operadores

7

Hoisting y coerci贸n

8

Playground - Calcula la propina

9

Alcance de las variables

D铆a 3

10

Condicionales

11

Playground - Calcula a帽os bisiestos

12

Switch

13

Playground - Obten informaci贸n de mascotas seg煤n su tipo

14

Ciclos

15

Playground - Dibuja un triangulo

D铆a 4

16

Arrays

17

Playground - Encuentra al michi mas famoso

18

Objetos

19

Playground - Obten el promedio de los estudiantes

D铆a 5 - Checkpoint

20

Playground - encuentra el palindromo m谩s grande

D铆a 6

21

Reasignaci贸n y redeclaraci贸n

22

Modo estricto

D铆a 7

23

Debugging y manejo de errores

24

Programaci贸n funcional

Quiz: D铆a 7

D铆a 8

25

Closures

26

Playground - Crea una calculadora con closures

27

Higher order functions

28

Playground - Crea tu propio m茅todo map

D铆a 9

29

ECMAScript

30

TC39

Quiz: D铆a 9

D铆a 10 - Checkpoint

31

ES6

32

ES7

33

Playground - Task planner

D铆a 11

34

Asincronismo

35

Playground - Promesas

36

Manejando el asincronismo

37

Playground - Resuelve el callback hell usando promesas

38

Playground - Resuelve el callback hell usando async/await

D铆a 12

39

Arrays a profundidad

40

M茅todos de arrays: Every, Find y findIndex

41

Playground - V谩lida el formulario

D铆a 13

42

M茅todos de arrays: Includes, Join y concat

43

Playground - agrupa los productos

44

M茅todos de arrays: Flat y FlatMap

45

Playground - Encuentra la ubicaci贸n del valor buscado

D铆a 14

46

Mutable functions

47

Playground - Modifica una lista de compras

48

M茅todos de arrays: sort

49

Playground - Ordena los productos

D铆a 15 - Checkpoint

50

Playground - Sistema de reservaciones de un hotel

D铆a 16

51

Programaci贸n orientada a objetos en JavaScript

52

Objetos literales

53

Playground - Congela el objeto recursivamente

D铆a 17

54

Prototipos en JavaScript

55

Playground - Modifica el prototype de los arrays

56

Playground - Crea un auto usando clases

D铆a 18

57

Abstracci贸n en JavaScript

58

Playground - Sistema de carrito de compras

59

Encapsulamiento en JavaScript

60

Playground - Encapsula datos de los usuarios

D铆a 19

61

Herencia en JavaScript

62

Playground - Jerarqu铆a de animales

63

Polimorfismo en JavaScript

64

Playground - Sistema de pagos

D铆a 20 - Checkpoint

65

Playground - Agenda de vuelos

Live Class

66

30 d铆as de JS con Juan DC

67

30 d铆as de JS con Nicobytes

No tienes acceso a esta clase

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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

3D
6H
51M
23S

Playground - Calcula la propina

8/67

Aportes 95

Preguntas 1

Ordenar por:

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

o inicia sesi贸n.

隆Hola t煤! Teniendo en cuenta que en el anterior playground LeoCode dej贸 un texto y una imagen para evitar que te comas un spoiler del ejercicio, yo har茅 lo mismo en este ejercicio adelantandome un poco a LeoCode, as铆 que鈥 Ten tu imagen random, 隆Pero hey! tambi茅n dejar茅 la soluci贸n al final, as铆 que si no has hecho el ejercicio y no quieres ver la soluci贸n a煤n No leas lo que hay despu茅s de la imagen

Listo, luego de la advertencia, como quiz谩s sepas (Y si no sabes, lo sabr谩s pronto 馃槈馃槈), para obtener el porcentaje de un valor, puedes realizarlo como de dos maneras f谩ciles desde mi punto de vista, solo recuerda que un 10% significa un 0.1, un 50% significa un 0.5 y un 5% significa un 0.05, teniendo esto claro vamos con la primera opci贸n:

  1. Multiplicando el valor del cu谩l quieres obtener con el porcentaje pero no en el valor de porcentaje, sino con el valor decimal, es decir, si es 55%, lo multiplicas por 0.55. 隆Listo! 驴Pero como se har铆a con c贸digo? Podr铆as simplemente hacer una conversi贸n de un dato que converta un 50 a un 0.50, ejemplo, 50 dividido en 100, conviertes el dato a decimal, siendo un 0.50, en c贸digo, ser铆a as铆:
export function calculateTip(billAmount, tipPercentage) {
  const newPercentage = tipPercentage / 100;
  return (billAmount * newPercentage)
}

Muy bonito, pero, 驴Y la segunda forma?

  1. Sencillito, solo aplica esta formula (compra * porcentaje) / 100, con esto no necesitas modificar el valor del porcentaje como en la primera soluci贸n, es decir, en c贸digo ser铆a as铆:
export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage)/100
}

隆Suerte en tu reto!

Creo que me gano otro estudiante, pero de igual manera aqu铆 tienen mi
.

馃洝锔忦煕★笍馃洝锔廍scudo anti spoilers馃洝锔忦煕★笍馃洝锔

Este texto que est谩s viendo en este momento no tiene ning煤n significado, simplemente es un aporte para poder esconder las soluciones de otros y otras estudiantes de la comunidad. **Nos encanta que dejen sus posibles y distintas soluciones a este problema ** pero no queremos frustrar a quienes vienen despu茅s a realizar este ejercicio.
.
Se estar谩n topando con este y otros mensajes (de mi o de otros estudiantes) con un proposito en particular, hacer m谩s agradable su experiencia.
.
Sin m谩s, dejo aqu铆 una imagen aleatoria para despu茅s poner la explicaci贸n de la soluci贸n dada.

Explicaci贸n

Esto es 谩lgebra b谩sica, existen multiples formas de calcular el porcentaje pero la que elejimos para este ejercicio fue la m谩s simple agarrar el n煤mero que recibimos como porcentaje de la propina y dividirlo entre 100.
.
De esta manera, al dividir un n煤mero menor de 100 entre 100, siempre obtendremos un decimal.
.
Tomando el ejemplo de la gu铆a, 10 / 100 = 0.1
.
Despu茅s solo es cuesti贸n de multiplicar el total por ese valor y obtenemos la propina que debemos dar 0.1 * 100 = 10
.
Y podemos tener una soluci贸n tan coqueta como la siguiente

function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage / 100)
}

Lo hermoso de la programaci贸n:

Es que no hay una sola respuesta absoluta. Me contenta tener una soluci贸n distinta a mis compa帽eros 馃挌

Recomendaci贸n: No s茅 si fui el 煤nico pero siento que le falt贸 un poco m谩s de redacci贸n a la explicaci贸n.

La explicaci贸n de Leo es m谩s clara. Deber铆an colocar esa 馃憤

Sab铆as que鈥

Big.js es una biblioteca JavaScript que proporciona aritm茅tica decimal de precisi贸n arbitraria. Esta biblioteca permite realizar operaciones matem谩ticas con n煤meros de cualquier tama帽o, sin perder precisi贸n debido a la limitaci贸n de la aritm茅tica de punto flotante de JavaScript.

La aritm茅tica de punto flotante es el est谩ndar utilizado por la mayor铆a de los lenguajes de programaci贸n, incluido JavaScript. Sin embargo, esta aritm茅tica tiene limitaciones en cuanto a la precisi贸n y el rango de los n煤meros que se pueden representar. En algunos casos, esto puede dar lugar a resultados incorrectos debido a errores de redondeo.

Big.js resuelve este problema al proporcionar una implementaci贸n de aritm茅tica decimal que puede manejar n煤meros con cualquier cantidad de d铆gitos, sin limitaciones de precisi贸n o rango. Esto es particularmente 煤til para aplicaciones financieras o cient铆ficas que requieren un alto nivel de precisi贸n en los c谩lculos.


Soluci贸n:

/**
 * @param {number} bill - Bill amount
 * @param {number} tip - Tip percentage
 * @returns {number} - Tip amount
 */
export const calculateTip = (bill, tip) => bill * tip / 100

Buenas aca dejo mi aporte, hice una validaci贸n al inicio ya que en la consigna decia que los valores iban a ser positivos, por lo tanto valide que estos sena mayores que 0

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    let propina;
    propina = billAmount * tipPercentage / 100;
    return propina;
  }    
}

Estaba viendo las soluciones y me doy cuenta que nadie ha hecho validaciones de los valores que recibe la funcion. Recuerden siempre validar que los valores que ingresan a sus funciones son los valores esperados. En este caso que sean numeros > 0

Asumiendo que los valores de la cuenta y propina deben ser siempre positivos, decid铆 agregar al final un mensaje en caso de que el usuario ingrese n煤meros negativos en mi respuesta:

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    return billAmount * (tipPercentage / 100);
  }
  else { 
    return "El valor de la cuenta/propina no puede ser negativo.";
  }
}

Hola! Voy poni茅ndome al d铆a con los retos.

Por aca les dejo mi apote

Aqui mi respuesta

export function calculateTip(billAmount, tipPercentage) {
  let tip = billAmount * tipPercentage / 100;
  return tip
}

Mi solucion al reto:

function calculateTip(billAmount, tipPercentage) {
const SonNumbers = (typeof (billAmount) === 鈥渘umber鈥 && typeof (tipPercentage) === 鈥渘umber鈥);
const EsMayor = (billAmount >= 0 && tipPercentage >= 0);
if ( SonNumbers && EsMayor ) {
return billAmount * (tipPercentage/100);
}
}

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage/100);
}

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (billAmount > 0 && tipPercentage > 0) {
    return billAmount * (tipPercentage / 100) 
  } else {
    return 0;
  }
}
calculateTip(100, 10);
calculateTip(1524.33, 25);
calculateTip(0, 0);

Hola que tal! No si estoy en lo correcto, pero esta fue mi soluci贸n:

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (billAmount > 0 && tipPercentage > 0) {
    let valorPropina = (tipPercentage / 100) * billAmount;
    return valorPropina;    
  } else {
    return 0;
  }
}

mi solucion

export function calculateTip(billAmount, tipPercentage) {
  let propina = (billAmount / 100) * tipPercentage;
return propina
}

Hola gente, aqu铆 les dejo mi aporte sobre como solucione el problema:

export function calculateTip(billAmount, tipPercentage) {
    let resultado;

    if (billAmount >= 0 && tipPercentage >= 0) {
      resultado = (billAmount * tipPercentage) / 100;
      return resultado;
    }
    else {
      console.log("Por favor, introduzca valores mayores a 0");
    }
    console.log(resultado);
  }

En los personal, creo que me exced铆 con lo de 鈥淭iene que ser mayor a 0鈥 Jajaja

Revise la soluci贸n que propone Platzi y me vol贸 la cabeza con lo simple que pudo haber sido Jajaja

Nada mas queda seguir aprendiendo y nunca parar de aprender. Saludos.

SI EMPEZARON TARDE COMO YO NO SE DESANIMEN >:D

Esta es la soluci贸n que realic茅 para este playground, :3

export function calculateTip(billAmount, tipPercentage) {

  let result = null;

  // we calculate the % of the tip
  const percentage = tipPercentage / 100;

  // we calculate the amount of the tip
  result = billAmount * percentage;

  return result;
}

export function calculateTip(billAmount, tipPercentage) {
return propina = billAmount * tipPercentage / 100

}
calculateTip(150000, 5)
console.log(propina)

otra forma de solucionarlo鈥
.
.
.
.
.
.
.

function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100
}

En esta pantalla del ejecicio鈥 le falto el boton鈥 de avanzar al siguiente capitulo o leccion.

Aca les dejo mi solucion, si lo van a ejecutar en el navegador les sugiero que agregen un console.error luego de los return del if

export function calculateTip(billAmount, tipPercentage) {

  if (typeof billAmount !== "number" || typeof tipPercentage !== "number") {
    return ("Debes introducir numeros")
  } else if (billAmount < 0 || tipPercentage < 0) {
    return ('Los par谩metros deben ser positivos');
  }
  return billAmount * (tipPercentage / 100)
}
calculateTip(-10, 10)
  1. export function calculateTip(billAmount,tipPercentage) {
    return (billAmount*(tipPercentage*0.01))
    }

oigan como como puedo comentar una imagen disculpen

Mi soluci贸n fue usar la m谩s sencilla y bonita que se me ocurri贸.

export function calculateTip(billAmount, tipPercentage) {
  let calcPercent = (tipPercentage / 100) * billAmount;
  return calcPercent
}

export function calculateTip(billAmount, tipPercentage) {
return billAmount * (tipPercentage / 100);
}

calculateTip(1524.33, 25)

Aqu铆 les dejo mi aporte con el c贸digo m谩s corto que logre hacer.

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage/100)
}

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100;
}

Hecho

export function calculateTip(billAmount, tipPercentage) {
  return tipPercentage/100*billAmount
}

Mi solucion!!!

export function calculateTip(billAmount, tipPercentage) {
  let result = tipPercentage * billAmount / 100;

  return result;
}

El spoiler!
export function calculateTip(billAmount, tipPercentage) {
// Tu c贸digo aqu铆 馃憟
let result = (billAmount * tipPercentage) / 100;
return result;
}

calculateTip(100, 10);

Aqu铆 mi soluci贸n, leyendo las aportaciones de los dem谩s, entiendo que lo correcto es hacer validaci贸n de los inputs, pero me agrad贸 que todo quedara en una l铆nea.

export function calculateTip(billAmount, tipPercentage) {
return billAmount*(tipPercentage*0.01)
}

export function calculateTip(billAmount, tipPercentage) {
// Tu c贸digo aqu铆 馃憟
let cuentatotal = billAmount * (tipPercentage / 100);
return cuentatotal;

}

calculateTip(100, 10)

export function calculateTip(billAmount, tipPercentage) {
  let result = billAmount * tipPercentage / 100
  return result
}

Aqu铆 dejo mi aporte.

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  let propina = 0;
  if ((typeof (billAmount) === "number") && (typeof (tipPercentage) === "number")) {
    if (billAmount >= 0 && tipPercentage >= 0) {
      propina = (billAmount * tipPercentage) / 100;
    }
  }

  return propina;
}

Viendo los aportes de otros compa帽eros pienso que pude haber simplificado demasiado la tarea. Es una sola l铆nea de c贸digo, no s茅 si esto sea algo malo o por mejorar

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100;
}

export function calculateTip(billAmount, tipPercentage) {
  let propina = billAmount * tipPercentage / 100;
  return propina;
}

Aporte de mi c贸digo

export function calculateTip(billAmount, tipPercentage) {
  let propina = billAmount * (tipPercentage / 100);
  return propina;
}

export function calculateTip(billAmount, tipPercentage) {
  const ValorPropina = billAmount * tipPercentage / 100
  return(ValorPropina)
}

Holii, por ac谩 mi aporte.

export function calculateTip(billAmount, tipPercentage) {
  let tipResult = 0; // declare otra variable para el resultado
  if (billAmount > 0) {
    tipResult = (billAmount * tipPercentage) / 100; //esta formula es para calcular el tip
    return tipResult // imprime el resultado
  } else {
    alert("Ingrese un monto v谩lido"); //si no cumple con la condici贸n, pedimos otro monto
  } return tipResult
}
export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100;
}

Hola, aqu铆 est谩 mi aporte:

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount > 0) {
    let propina = (tipPercentage / 100) * billAmount; 
    return propina;
  } else {
    return "Para recibir propina el consumidor debe comprar algo";
 }
}

Mi soluci贸n:

My solution

export function calculateTip(billAmount, tipPercentage) {
  return Number((billAmount * tipPercentage) / 100);
}

Soluci贸n鈥 馃槃

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100
}

Mi solucion鈥
Aprendiendo ando 鈥
Gracias


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

me esta gustando estos retos, primero porque hice el curso b谩sico de JS sin embargo ha sido complejo adaptarme a colocar el var, o let antes de las variables as铆 que en mi primer intento falle por no colocarlos

function calculateTip(billAmount, tipPercentage) {
    let tip=billAmount*(tipPercentage/100);
    return tip;
}
export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  return billAmount * tipPercentage / 100
}

Mi aporte de hoy:

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (typeof (billAmount) == 'number' && typeof (tipPercentage) == 'number') {
    if (billAmount >= 0 && tipPercentage >= 0) {
      return (billAmount * tipPercentage) / 100;
    }
  }
  return null;
}

Mi solucion al reto!

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    return billAmount * tipPercentage / 100;
  } else {
    return("No se puede hacer la operacion papito")
  }
}

Uff esta si me costo, pero aqu铆 esta la soluci贸n

export function calculateTip(billAmount, tipPercentage) {

//se calcula por una regla de 3 simple que se expresa usando operadores
  var tipAmount = billAmount * (tipPercentage / 100);
  resultado=console.log(tipAmount);

  return resultado;
}

calculateTip(254, 10); 
//al llamar la funci贸n se le pasa como primer argumento el total de la cuenta y como segundo el porcentaje de propina

Soluci贸n D铆a #2

export function calculateTip(billAmount, tipPercentage) {
  // D铆a 2 馃挌
  return (billAmount * tipPercentage) / 100;
}

Ac谩 les va mi soluci贸n:

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  return billAmount * (tipPercentage / 100)
}

Es muy similar a algunas que he visto en los comentarios uwu

.
.
.
.
.
.
.
.
.
.
.
.

export function calculateTip(billAmount, tipPercentage) {
 return(billAmount * tipPercentage / 100)
}

calculateTip(100, 10)

Este fue mi error de hoy, lo comparto para que vean que no son los 煤nicos que se pueden equivocar. Decid铆 resolverlo aplicando lo que 脕lvaro aport贸.

export function calculateTip(billAmount, tipPercentage) {
  let tip = billAmount * 100 / tipPercentage;
  return tip
}

La forma en la que ahora lo resuelvo es esta:

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage)/100
}

Mi soluci贸n y explicaci贸n 馃憞

export function calculateTip(billAmount, tipPercentage) {
  let valueAmount = 0; //inicializaci贸n de variable
  if (typeof billAmount === 'number' && typeof tipPercentage === 'number') {
    //se eval煤a "number" as铆 porque sino se escribe con comillas dobles o simple en la condici贸n JavaScript lo interpretar谩 como un variable o constante, y como estamos evaluando que los par谩metros sean de tipo number se coloca as铆
    valueAmount = billAmount * tipPercentage / 100; //valor de propina
  }
  return valueAmount;
}

export function calculateTip(billAmount, tipPercentage) {

if (billAmount >= 0 && tipPercentage >= 0) {

let valorPropina = billAmount * tipPercentage / 100;
console.log("El valor de propina es: " + valorPropina);
return valorPropina;

} else {

console.log("El valor ingresado es negativo");

}
}

隆Hola, Platzinauta!
Objetivo
En este desaf铆o tendr谩s que calcular la propina que deben dejar los clientes de un restaurante en funci贸n de su consumo
Mi soluci贸n,
Se detalla hasta abajo.猬


































export function calculateTip(billAmount, tipPercentage) {
 //@autor: dmos
  let percenValid = (tipPercentage != 0) ? tipPercentage / 100 : 0;
  return (billAmount * percenValid);
}

Mi codigo quedo as铆
.
.
.
.
.l
.
.
.
.
.
.
.
.
.
.
.
.
.

Como ley de las matem谩ticas se comienza por * y luego /, si no pongo los () igual hubiera multiplicado primero y luego el resultado lo hubiera dividido.

export function calculateTip(billAmount, tipPercentage) {
return (billAmount * tipPercentage) / 100
}

export function calculateTip(billAmount, tipPercentage) {
if (typeof (billAmount) === 鈥渘umber鈥 && typeof (tipPercentage) === 鈥渘umber鈥)
{
if (billAmount >= 0 && tipPercentage >= 0 && tipPercentage <= 100) {
return (billAmount * (tipPercentage / 100));
} else {
return (鈥淣o se permiten numeros negativos o propinas mayores a 100%鈥);
}
} else {
return (鈥淧or Favor ingrese solo numeros鈥);
}
}

Dejo mi soluci贸n a este ejercicio:

export functioncalculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (typeof billAmount !== 'number' || typeof tipPercentage !== 'number') {
    return ('Los par谩metros deben ser n煤meros');
  }

  if (billAmount < 0 || tipPercentage < 0) {
    return ('Los par谩metros deben ser positivos');
  }

  const tipAmount = billAmount * (tipPercentage / 100);
  returnMath.round(tipAmount * 100) / 100;
}

Hoy muchas formas de calcular el porcentaje, utilice una formule que encontre en internet

export function calculateTip(billAmount, tipPercentage) {
  return ((billAmount * tipPercentage) / 100);
}

export function calculateTip(billAmount, tipPercentage) {
let propina = ((billAmount / 100) * tipPercentage);
return propina;
}

console.log(calculateTip(100, 10));
console.log(calculateTip(1524.33, 10));

Este es mi codigo, saludos

function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  let b = tipPercentage * 1e-2;
  let a = billAmount * b;
  return a;
}

Comparto mi codigo espero les ayude.

Hola. Les comparto un oneliner 馃槂

export const calculateTip = (b, t) => b * t / 100;

Se basa en las arrow function expressions. La arrow ()=>{} se asigna a la variable calculateTip. No requiere return o llaves porque es de return autom谩tico. Luego reemplazo los nombres por letras (ojo: esto no es tan buena pr谩ctica jeje)

Comparto mi solucion

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100
}

Hola a todos les comparto mi codigo:

if (billAmount >= 0 && tipPercentage >= 0) {

  let propina;
  propina = billAmount * (tipPercentage / 100);
  console.log(propina);

}

}
calculateTip(100, 10)

No es por desconfiar del ejercicio pero agreg茅 una validaci贸n para comprobar que fuera type number los parametros

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (typeof billAmount === "number" && typeof tipPercentage === "number") {
    const tip = (billAmount * tipPercentage) / 100
    return tip
  }
}

Hice este c贸digo que valida que no ingresen un String y que el n煤mero sea positivo, si todo esta bien hace el c谩lculo XD

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (typeof billAmount === String || tipPercentage === String) {

    console.log("El tipo de dato debe ser un n煤mero.")

  } else if (billAmount < 0 || tipPercentage <0) {
    console.log("El n煤mero debe ser positivo.")
  }

    return (billAmount * tipPercentage / 100);

}

Aqui esta mi reto:

Para calcular la propina, primero debemos asegurarnos de que el tipo de dato que ingresemos sea un n煤mero positivo y eso lo logramos generando una condicional que primero nos verifique si los par谩metros son n煤meros (por medio de NaN) y luego verificando que sean n煤meros positivos.

export function calculateTip(billAmount, tipPercentage) {
  // Verificamos si los par谩metros son n煤meros
  if (isNaN(billAmount) || isNaN(tipPercentage) || billAmount < 0 || tipPercentage < 0) {
    return ('Los par谩metros deben ser n煤meros positivos');
  }
  // Retornamos el valor de la propina redondeada a 2 decimales
  return Math.round((billAmount * tipPercentage / 100) * 100) / 100;
}

Estamos haciendo una operaci贸n matem谩tica para calcular el valor de la propina, redonde谩ndola a dos decimales utilizando la funci贸n Math.round().
.
Veamos el orden de las operaciones:
.

  • Primero multiplicamos billAmount (el costo total de la factura) por tipPercentage (el porcentaje de propina). Al hacer esto, obtenemos el valor de la propina en s铆.
  • Dividimos el resultado anterior entre 100 para obtener el valor decimal de la propina.
  • Multiplicamos el resultado anterior por 100 para 鈥渕over鈥 los decimales a dos lugares hacia la derecha, convirtiendo as铆 la propina en un n煤mero entero.
  • Redondeamos el resultado de la propina con la funci贸n Math.round().
  • Finalmente, dividimos el resultado de la propina entre 100 de nuevo para 鈥渕over鈥 los decimales a dos lugares hacia la izquierda, devolviendo as铆 la propina como un n煤mero decimal con dos decimales.
    .

La raz贸n por la que hacemos todo esto es para asegurarnos de que la propina devuelta tenga 煤nicamente dos decimales, en lugar de varios decimales despu茅s de la coma. Esto es especialmente importante si estamos trabajando con dinero, ya que queremos asegurarnos de que los c谩lculos se manejen con precisi贸n.

Me di cuenta de que no s茅 sacar porcentajes ni calcular una propina. T-T

Hola

Por aqui dejo mi resultado

export function calculateTip(billAmount, tipPercentage) {

  if (typeof (billAmount) === "number" && typeof (tipPercentage) === "number") {
    if (billAmount >= 0 && tipPercentage >= 0) {
      return (billAmount * (tipPercentage / 100));
    } else {
      return ("No se permiten numeros negativos");
    }
  } else {
    return ("Por Favor ingrese solo numeros")
  }
}

Esa es mi solucion!!

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100; 
}

My code

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  if (typeof billAmount != "number")
    throw "Error Bill Amount is not number"
  if (typeof tipPercentage != "number")
    throw "Error Tip Percentage is not number"
  if (billAmount < 0 || tipPercentage < 0)
    throw "Los valores tienen que ser positivos"
  return billAmount*tipPercentage/100
}
 

Hola, dejo mi solucion

Caminito anti spoilers
馃殫
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Llegamos 馃搷

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  return (billAmount * tipPercentage) / 100;
}

Tambien puede ser de la siguiente manera:

export const calculateTip = (billAmount, tipPercentage) => (billAmount * tipPercentage) / 100;

me quede pegao unos 15 minutos pasando tipPersentage a % y me aparecia null, luego recorde la regla de 3 simples y listo solucionado ;D
Mi solucion

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage / 100);
}

Esta es mi solucion 馃槂

function calculateTip(billAmount, tipPercentage){
if((billAmount >= 0) & (tipPercentage >= 0)){
return (billAmount*tipPercentage)/100
}
return 鈥楽olo se admiten numeros positivos鈥
}
calculateTip(400.25, 25)

Lo siento no se como insertar una imagen aca jajaja 馃槮

Me falto validar que no permita recibir string como parametro

y mi soluci贸n es
+
+
+
+
+
+
+
+
+
+
+

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage)/100;
}

function calculateTip(billAmount, tipPercentage) {
return billAmount * (tipPercentage / 100)
}

export function calculateTip(billAmount, tipPercentage) {
  //retornando directamente el resultado de la regla de 3
  return tipPercentage * billAmount / 100
}

calculateTip(100, 10)
calculateTip(1524.33, 25)

export function calculateTip(billAmount, tipPercentage) {
  var tip = billAmount * tipPercentage/100
  return tip
}

Vaya lo diferente que es enfrentarse a un algoritmo como este antes y despu茅s de comer.

export function calculateTip(billAmount, tipPercentage) {
  let tip;
  return tip = billAmount * (tipPercentage/100);
}
export function calculateTip(billAmount, tipPercentage) {
  let propina;

  propina = (billAmount * tipPercentage) / 100;

  return propina;
}
export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage/100
}

Just in case

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount / 100) * tipPercentage;
}

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount /100 * tipPercentage)
}

export function calculateTip(billAmount, tipPercentage) {
// Tu c贸digo aqu铆 馃憟
return billAmount * tipPercentage / 100;
}

Soluci贸n

export function calculateTip(billAmount, tipPercentage) {
  var propina;
  propina= (billAmount * tipPercentage) / 100;
  return propina
}```

hay muchas formas de hacerlo pude ver algunas que hicieron mis compa帽eros son interesantes todos al final llegamos a la misma conclusi贸n aqu铆 dejo mi parte

function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  let divisor = 100 / tipPercentage
  return billAmount / divisor
}

este es mi aporte :

export function calculateTip(billAmount, tipPercentage) {
  // Tu c贸digo aqu铆 馃憟
  const porcentaje = tipPercentage / 100;
  const resultado = billAmount * porcentaje;
  return resultado
}

}

export function calculateTip(billAmount, tipPercentage) {
// Tu c贸digo aqu铆 馃憟
const tip = billAmount * tipPercentage / 100
return tip
}

Aqui mi aporte, la primera es una forma que no pens茅 que fuese a funcionar, pero lo hizo jaja, por eso me encanta JavaScript. B谩sicamente a帽adimos un cero a la izquierda del porcentaje de propina (que es lo mismo que dividirla por 100), y multiplicamos por el valor del consumo:

export function calculateTip(billAmount, tipPercentage) {
	let percentegeOperation = 0 + '.' + tipPercentage; // 0.x
	let percentegeResult = billAmount * percentegeOperation;
	return percentegeResult;
}

A continuaci贸n, est谩 la forma m谩s 鈥渘ormal鈥 de hacerlo jeje, son b谩sicamente lo mismo:

export function calculateTip(billAmount, tipPercentage) {
	let percentageOperation = tipPercentage  / 100; // 0.x
	let percentageResult = billAmount * percentegeOperation;
	return percentegeResult;
}

馃槂

undefined