--- title: Generador de historias absurdas slug: Learn/JavaScript/First_steps/Silly_story_generator tags: - Arreglos - Cadenas - JavaScript - Numeros - Principiante translation_of: Learn/JavaScript/First_steps/Silly_story_generator original_slug: Learn/JavaScript/First_steps/Generador_de_historias_absurdas ---
En esta evaluación, deberás tomar parte del conocimiento que has aprendido en los artículos de este módulo y aplicarlo a la creación de una aplicación divertida que genere historias aleatorias. ¡Que te diviertas!
| Prerrequisitos: | Antes de intentar esta evaluación, deberías haber revisado todos los artículos de este módulo. |
|---|---|
| Objetivo: | Probar la comprensión de los fundamentos de JavaScript, como variables, números, operadores, cadenas y matrices |
Para iniciar esta evaluación, debe:
index.html en un directorio nuevo en algún lugar de su computadora. Esto también tiene el CSS para estilizar el ejemplo que contiene.Nota: Alternativamente, puede usar un sitio como JSBin o Thimble para hacer su evaluación. Puede pegar el HTML, CSS y JavaScript en uno de estos editores en línea. Si el editor en línea que está utilizando no tiene un panel de JavaScript separado, no dude en colocarlo en línea en un elemento <script> dentro de la página HTML.
Se le han proporcionado algunos HTML / CSS en bruto y algunas cadenas de texto y funciones de JavaScript; necesita escribir el JavaScript necesario para convertir esto en un programa de trabajo, que hace lo siguiente:
La siguiente captura de pantalla muestra un ejemplo de lo que debería producir el programa terminado:

Para darle más idea, eche un vistazo al ejemplo final (¡no mire el código fuente!)
En las siguientes secciones se describe lo que hay que hacer.
Configuración básica:
main.js, en el mismo directorio que tu archivo index.html.main.js. Póngalo justo antes de la etiquette de cierra </body>.Variables y funciones iniciales:
customName), el botón "Generate random story" (randomize), y el elemento {{htmlelement("p")}} al fondo del cuerpo HTML en el que la historia será copiada en (story), respectivamente. Además, obtendrás una funcion llamada randomValueFromArray() que toma un array, y devuelve uno de los items guardados dentro del array al azar.main.js:
storyText.insertX.insertY.insertZ.Colocar el controlador de evento y la función incompleta:
main.js . Esto:
randomize, de manera que cuando al botón que esta representa se le haya dado un click, la función result() funcione.result() a tu código. Por el resto de la evaluación, deberás llenar en líneas dentro de esta función para completarla y hacer que trabaje adecuadamente.Completando la función result():
newStory, y establezca su valor igual a storyText. Esto es necesario para que podamos crear una nueva historia aleatoria cada vez que se presiona el botón y se ejecuta la función. Si hiciéramos cambios directamente en storyText, solo podríamos generar una nueva historia una vez.xItem, yItem, y zItem, y tienes que igualar cada variable llamando a randomValueFromArray() en sus tres matrices (el resultado en cada caso será un elemento aleatorio de cada matriz en la que se llama). Por ejemplo, puede llamar a la función y hacer que devuelva una cadena aleatoria de insertX escribiendo randomValueFromArray(insertX).newStory — :insertx:, :inserty:, y :insertz: — con las cadenas almacenadas en xItem, yItem, y zItem. Hay un método de string en particular que lo ayudará aquí: en cada caso, haga que la llamada al método sea igual a newStory de modo que cada vez que se llame, newStory se iguale a sí mismo, pero con sustituciones. Entonces, cada vez que se presiona el botón, estos marcadores de posición se reemplazan con una cadena absurda aleatoria. Como sugerencia adicional, el método en cuestión solo reemplaza la primera instancia de la subcadena que encuentra, por lo que es posible que deba realizar una de las llamadas dos veces.if, agregue otra llamada al método de reemplazo de cadena para reemplazar el nombre 'Bob' que se encuentra en la cadena newStory con la variable de name. En este bloque estamos diciendo "Si se ingresó un valor en la entrada de texto customName reemplace a Bob en la historia con ese nombre personalizado."if, se esta verificando si se ha seleccionado el botón de opción uk Si es así, queremos convertir los valores de peso y temperatura en la historia de libras and Fahrenheit a stones and grados centígrados. Lo que debe hacer es lo siguiente:
weight, reemplace 300 con un cálculo que convierta 300 libras en stones. Concatenar 'stone' al final del resultado de la llamada Math.round().temperature, reemplace 94 con un cálculo que convierta 94 Fahrenheit en centígrados. Concatenar 'centigrade' al final del resultado de la llamada Math.round().temperature, y '300 libras' con el contenido de la variable de weight.textContent de la variable de la story (que hace referencia al párrafo) sea igual a newStory.document.querySelector('html').style.backgroundColor = 'red';
replace() varias veces o puede utilizar expresiones regulares. Por ejemplo, let text = 'I am the biggest lover, I love my love'; text.replace(/love/g,'like'); Reemplazará todas las instancias de 'love' a 'like'. Recuerde, las cuerdas son inmutables.Si está siguiendo esta evaluación como parte de un curso organizado, debería poder entregar su trabajo a su profesor/mentor para que lo califique. Si está aprendiendo por ti mismo, puede obtener la guía de calificación con bastante facilidad preguntando en el hilo de discussion thread for this exercise, o en el canal de IRC #mdn en Mozilla IRC. Pruebe el ejercicio primero: ¡no se gana nada haciendo trampa!
{{PreviousMenu("Learn/JavaScript/First_steps/Arrays", "Learn/JavaScript/First_steps")}}