Skip to content

Commit 8d15de9

Browse files
committed
#25 - JavaScript
1 parent 7c2e38f commit 8d15de9

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
4+
* un ejemplo con cada nivel de "severidad" disponible.
5+
*/
6+
7+
let x = 5
8+
console.assert(x > 10, "El valor de x no es mayor que 10")
9+
10+
console.clear()
11+
12+
console.log("Este es un mensaje de log")
13+
14+
console.info("Información: el programa ha iniciado correctamente")
15+
16+
console.warn("Advertencia: estás a punto de alcanzar el límite de uso")
17+
18+
console.error("Error: el archivo no pudo ser encontrado")
19+
20+
console.debug("Debug: se está calculando el valor")
21+
22+
function greeting(user) {
23+
console.count("Llamadas a greeting")
24+
return `Hi ${user}`
25+
}
26+
27+
greeting('user_1')
28+
greeting('user_1')
29+
greeting('user_1')
30+
31+
console.countReset("Llamadas a greeting")
32+
greeting('user_1')
33+
34+
function addition(a, b) {
35+
console.debug("Debug: calculando el total de ", a, b)
36+
return a + b
37+
}
38+
39+
addition(1, 2)
40+
41+
let users = {
42+
name: "Victor",
43+
age: 21,
44+
address: {
45+
city: "Madrid",
46+
country: "España",
47+
},
48+
}
49+
50+
console.dir(users, { depth: 1, colors: true })
51+
52+
if (typeof document !== 'undefined') {
53+
console.dirxml(document.body)
54+
}
55+
56+
/*
57+
* DIFICULTAD EXTRA (opcional):
58+
* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
59+
* y listar dichas tareas.
60+
* - Añadir: recibe nombre y descripción.
61+
* - Eliminar: por no mbre de la tarea.
62+
* Implementa diferentes mensajes de log que muestren información según la
63+
* tarea ejecutada (a tu elección).
64+
* Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
65+
*/
66+
67+
const readline = require('node:readline')
68+
const { stdin: input, stdout: output } = require('node:process')
69+
70+
const rl = readline.createInterface({ input, output })
71+
let tasks = []
72+
73+
function schedule() {
74+
console.log('- Gestor de tareas -')
75+
console.log('1 - Añadir')
76+
console.log('2 - Eliminar')
77+
console.log('3 - Listar')
78+
console.log('4 - Salir')
79+
80+
rl.question('Ingresa una opción: ', (response) => {
81+
if (response === '1') {
82+
rl.question('Ingrese el nombre de la Tarea: ', (taskName) => {
83+
rl.question('Ingresa la descripción de la tarea: ', (taskDescription) => {
84+
if (taskName && taskDescription) {
85+
console.time('Tiempo de ejecución')
86+
console.log(`Tarea añadida: ${taskName} - ${taskDescription}`)
87+
tasks.push({ name: taskName, description: taskDescription })
88+
console.timeEnd('Tiempo de ejecución')
89+
} else {
90+
console.log('El nombre y la descripción de la tarea son obligatorios.')
91+
}
92+
schedule()
93+
})
94+
})
95+
} else if (response === '2') {
96+
rl.question('Ingresa el nombre de la tarea a eliminar: ', (taskName) => {
97+
console.time('Tiempo de ejecución')
98+
const originalLength = tasks.length
99+
tasks = tasks.filter(item => !item.name.toLowerCase().includes(taskName.toLowerCase()))
100+
if (tasks.length < originalLength) {
101+
console.log(`Tarea eliminada: ${taskName}`)
102+
} else {
103+
console.log(`No se encontró la tarea: ${taskName}`)
104+
}
105+
console.timeEnd('Tiempo de ejecución')
106+
schedule()
107+
})
108+
} else if (response === '3') {
109+
console.time('Tiempo de ejecución')
110+
if (tasks.length > 0) {
111+
console.table(tasks)
112+
} else {
113+
console.log('No hay tareas para mostrar.')
114+
}
115+
console.timeEnd('Tiempo de ejecución')
116+
schedule()
117+
} else if (response === '4') {
118+
console.log('Saliendo del gestor de tareas...')
119+
rl.close()
120+
} else {
121+
console.log('Opción no válida. Intente de nuevo.')
122+
schedule()
123+
}
124+
})
125+
}
126+
127+
schedule()

0 commit comments

Comments
 (0)