From edb52faf8548665306528359e97b07daa602ddbf Mon Sep 17 00:00:00 2001 From: Cesar-Ch Date: Thu, 20 Jul 2023 22:05:25 -0500 Subject: [PATCH] Reto #28 - Javascript --- .../javascript/cesar-ch.js" | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "Retos/Reto #28 - EXPRESI\303\223N MATEM\303\201TICA [Media]/javascript/cesar-ch.js" diff --git "a/Retos/Reto #28 - EXPRESI\303\223N MATEM\303\201TICA [Media]/javascript/cesar-ch.js" "b/Retos/Reto #28 - EXPRESI\303\223N MATEM\303\201TICA [Media]/javascript/cesar-ch.js" new file mode 100644 index 0000000000..5d30defbf5 --- /dev/null +++ "b/Retos/Reto #28 - EXPRESI\303\223N MATEM\303\201TICA [Media]/javascript/cesar-ch.js" @@ -0,0 +1,44 @@ +/* + * Crea una función que reciba una expresión matemática (String) + * y compruebe si es correcta. Retornará true o false. + * - Para que una expresión matemática sea correcta debe poseer + * un número, una operación y otro número separados por espacios. + * Tantos números y operaciones como queramos. + * - Números positivos, negativos, enteros o decimales. + * - Operaciones soportadas: + - * / % + * + * Ejemplos: + * "5 + 6 / 7 - 4" -> true + * "5 a 6" -> false + */ + + +function isMathExpression(str) { + const operations = ['+', '-', '*', '/', '%'] + const mathExpression = str.split(' ') + if (mathExpression.length < 3 || mathExpression.length % 2 == 0) { + return false + } + + let isMathExpression = true + mathExpression.map((e, i) => { + if (!Number(e) && i % 2 == 0) { + isMathExpression = false + } + + if (!operations.includes(e) && i % 2 != 0) { + isMathExpression = false + } + } + ) + return isMathExpression + +} + +console.log(isMathExpression("3 + 5")) +console.log(isMathExpression("3 a 5")) +console.log(isMathExpression("-3 + 5")) +console.log(isMathExpression("- 3 + 5")) +console.log(isMathExpression("-3 a 5")) +console.log(isMathExpression("-3+5")) +console.log(isMathExpression("3 + 5 - 1 / 4 % 8")) \ No newline at end of file