{"type":"exercise","title":"Ejercicio con varias variables","description":"Devuelva en la variable 'a' la palabra 'Hello World', y en la variable 'b' una función que reciba como parámetro una string y la pase a minúsculas.","editorMode":"JavaScript","content":"/*\n * Devuelva en la variable 'a' la palabra 'Hello World', y en la variable 'b' una función que reciba como parámetro una string y la pase a minúsculas.\n */\n\nvar a;\n\nvar b = function(str){\n\n};\n","score_function":"var score = function (result,variablesHash){\n\t\tvar grade = {};\n\t\tgrade.successes = [];\n\t\tgrade.errors = [];\n\t\tgrade.feedback = [];\n\t\tgrade.score = 0;\n\n\t\tvar a = variablesHash[\"a\"];\n\t\tvar b = variablesHash[\"b\"];\n\n\t\tif(typeof a !== \"string\"){\n\t\t\tgrade.errors.push(\"El valor devuelto en la variable 'a' no es una string.\");\n\t\t} else {\n\t\t\tgrade.score += 1;\n\t\t\tif(a==='Hello World'){\n\t\t\t\tgrade.successes.push(\"Se definió 'Hello World' en la variable 'a'.\");\n\t\t\t\tgrade.score += 1;\n\t\t\t}\n\t\t}\n\n\t\tif(typeof b !== \"function\"){\n\t\t\tgrade.errors.push(\"El valor devuelto en la variable 'b' no es una función.\");\n\t\t} else {\n\t\t\tgrade.score += 1;\n\n\t\t\t//Testear la función.\n\t\t\ttry {\n\t\t\t\tvar testA = b(\"Perro\");\n\t\t\t\tif(testA===\"perro\"){\n\t\t\t\t\tgrade.score += 2;\n\t\t\t\t\tgrade.successes.push(\"La función definida en 'b' funciona correctamente para palabras simples.\");\n\t\t\t\t} else {\n\t\t\t\t\tgrade.errors.push(\"La función definida en 'b' no funciona correctamente para palabras simples.\");\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tb(undefined);\n\t\t\t\t\tb(null);\n\t\t\t\t\tb(8);\n\t\t\t\t\tvar testB = b(\"\");\n\t\t\t\t\tif(typeof testB !== \"undefined\"){\n\t\t\t\t\t\tgrade.score += 2;\n\t\t\t\t\t\tgrade.successes.push(\"La función definida en 'b' gestiona correctamente valores de entrada erróneos.\");\n\t\t\t\t\t}\n\t\t\t\t} catch(e){\n\t\t\t\t\tgrade.errors.push(\"La función definida en 'b' no gestiona correctamente valores de entrada erróneos.\");\n\t\t\t\t\tgrade.feedback.push(\"Recuerde tomar en consideración los casos en los que la variable de entrada de una función pueda ser 'undefined', 'null', u otros valores no esperados.\");\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar testC = b(\"Mi Gato COME cOmIdA de gat0\");\n\t\t\t\t\tif(testC === \"mi gato come comida de gat0\"){\n\t\t\t\t\t\tgrade.score += 3;\n\t\t\t\t\t\tgrade.successes.push(\"La función definida en 'b' funciona correctamente para frases.\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrade.errors.push(\"La función definida en 'b' no funciona correctamente para frases.\");\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t\tgrade.errors.push(\"La función definida en 'b' no gestiona correctamente valores de entrada erróneos.\");\n\t\t\t\t\tgrade.feedback.push(\"Recuerde tomar en consideración los casos en los que la variable de entrada de una función pueda ser 'undefined', 'null', u otros valores no esperados.\");\n\t\t\t\t}\n\n\t\t\t} catch(e) {\n\t\t\t\tgrade.errors.push(\"La función 'b' presenta errores de ejecución.\");\n\t\t\t}\n\t\t}\n\n\t\tif(grade.score===10){\n\t\t\tgrade.feedback.push(\"¡Enhorabuena, tu solución es perfecta!\");\n\t\t}\n\n\t\treturn grade;\n\t}","score_function_vars":["a","b"]}