HiginioUrbano / practica_dwec_gestor_presupuesto

Práctica de Gestión de Presupuestos para el módulo de Desarrollo Web en Entorno Cliente
GNU General Public License v3.0
0 stars 0 forks source link

Filtrar Gastos #7

Closed HiginioUrbano closed 2 years ago

HiginioUrbano commented 3 years ago

@pedroprieto No se como pasar la funcion filtrar gastos, he probado haciendolo con bucle y sin el bucle y no me funciona. No se me ocurre que mas hacer para filtrar los gastos a través de la fecha

pedroprieto commented 3 years ago

Si sabes mostrar todos los gastos también sabes mostrar los filtrados. Ten en cuenta que filtrarGastos devuelve un array. Es lo mismo que con listarGastos. Primero filtras y luego iteras el array resultante: para cada gasto llamas a la función de mostrarGastoWeb.

HiginioUrbano commented 3 years ago

Ya, si eso es lo que estoy intentacion hacer, pero el test me dice que gastos is not irable, aunque no tenga definida ninguna variable gastos

El vie, 5 nov 2021 a las 13:32, Pedro Prieto @.***>) escribió:

Si sabes mostrar todos los gastos también sabes mostrar los filtrados. Ten en cuenta que filtrarGastos devuelve un array. Es lo mismo que con listarGastos. Primero filtras y luego iteras el array resultante: para cada gasto llamas a la función de mostrarGastoWeb.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/issues/7#issuecomment-961859901, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUM3WNPWETHIZ3ADVOWANTTUKPFHJANCNFSM5HNXMTJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

HiginioUrbano commented 3 years ago

Sigo con este problema después de tnatos días... incluso he copiado la función de un compañero que hablé con el con la desesperación para ver si era el fallo y me seguía tirando error, porque creo que la lógica de la función es correcta... no se que más hacer.

El vie, 5 nov 2021 a las 13:40, HIGINIO URBANO OCHOA (< @.***>) escribió:

Ya, si eso es lo que estoy intentacion hacer, pero el test me dice que gastos is not irable, aunque no tenga definida ninguna variable gastos

El vie, 5 nov 2021 a las 13:32, Pedro Prieto @.***>) escribió:

Si sabes mostrar todos los gastos también sabes mostrar los filtrados. Ten en cuenta que filtrarGastos devuelve un array. Es lo mismo que con listarGastos. Primero filtras y luego iteras el array resultante: para cada gasto llamas a la función de mostrarGastoWeb.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/issues/7#issuecomment-961859901, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUM3WNPWETHIZ3ADVOWANTTUKPFHJANCNFSM5HNXMTJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

pedroprieto commented 3 years ago

Buenas,

A ver, tienes que revisar el código tranquilamente. El problema es fácil de detectar:

En primer lugar, la función mostrarGastoWeb tal como la has hecho, acepta un parámetro gastos que es un array. Dentro de la función iteras dicho array y muestras cada gasto: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L8 https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L9

Lógicamente, en la llamada a la función pasas como parámetro el array de gastos: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L30

Sin embargo, en la siguiente llamada con los gastos filtrados, iteras fuera de la función y le pasas a mostrarGastoWeb un elemento en lugar de un array: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L33 https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L35

Y encima tienes un error de sintaxis, porque la variable de iteración es gastoFiltrado y la que utilizas dentro es gastosFiltrado.

Por tanto, los gastos filtrados no se te mostrarán. Lo que tienes que hacer es llamar a mostrarGastoWeb pasándole como parámetro el array gastosFiltrados y quitar el bucle siguiente: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L33

Todo esto son fallos relativamente sencillos que tienes que ser capaz de detectar por ti mismo. Creo que te agobia demasiado hacer el trabajo lo antes posible: párate un rato, o incluso borra (o comenta) lo que no te funcione y trata de hacerlo de nuevo desde el principio. Por supuesto que habrá veces que te costará encontrar el fallo, pero ten paciencia y procede metódicamente: haz pruebas con console.log para mostrar las variables o parámetros de la función que estés pasando, utiliza las herramientas de inspección del navegador, etc.

Dicho todo esto, en realidad el enunciado pide que mostrarGastoWeb tome como parámetro un único gasto, no un array. Por tanto, el método que has seguido para mostrar los gastos filtrados (poner el bucle en generarDatosEstaticos.js) es el correcto (si corriges el error de la variable que te he comentado, claro :wink:). Eso sí, para que funcione correctamente deberás quitar el bucle de gestionPresupuestoWeb.js: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L9 Y renombrar el parámetro para que se llame gasto en lugar de gastos.

Un saludo, ánimo y paciencia, que no hace falta que corras tanto!!!

HiginioUrbano commented 3 years ago

Claro Que intento ir rápido... Voy ya con una semana de retraso y esta semana seguro que subes otra actividad y más faena acumulada... No me gusta no ir al día.

Por cierto, he realizado los cambios que me has dicho y me sigue saltando un error, ahora me dice que no se puede leer el null de append... He actualizado mi codigo en mi repositorio por si le quieres echar un vistazo, estoy desesperado ya.

El lun, 8 nov 2021 a las 10:06, Pedro Prieto @.***>) escribió:

Buenas,

A ver, tienes que revisar el código tranquilamente. El problema es fácil de detectar:

En primer lugar, la función mostrarGastoWeb tal como la has hecho, acepta un parámetro gastos que es un array. Dentro de la función iteras dicho array y muestras cada gasto:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L8

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L9

Lógicamente, en la llamada a la función pasas como parámetro el array de gastos:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L30

Sin embargo, en la siguiente llamada con los gastos filtrados, iteras fuera de la función y le pasas a mostrarGastoWeb un elemento en lugar de un array:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L33

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L35

Y encima tienes un error de sintaxis, porque la variable de iteración es gastoFiltrado y la que utilizas dentro es gastosFiltrado.

Por tanto, los gastos filtrados no se te mostrarán. Lo que tienes que hacer es llamar a mostrarGastoWeb pasándole como parámetro el array gastosFiltrados y quitar el bucle siguiente:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/generarDatosEstaticos.js#L33

Todo esto son fallos relativamente sencillos que tienes que ser capaz de detectar por ti mismo. Creo que te agobia demasiado hacer el trabajo lo antes posible: párate un rato, o incluso borra (o comenta) lo que no te funcione y trata de hacerlo de nuevo desde el principio. Por supuesto que habrá veces que te costará encontrar el fallo, pero ten paciencia y procede metódicamente: haz pruebas con console.log para mostrar las variables o parámetros de la función que estés pasando, utiliza las herramientas de inspección del navegador, etc.

Dicho todo esto, en realidad el enunciado pide que mostrarGastoWeb tome como parámetro un único gasto, no un array. Por tanto, el método que has seguido para mostrar los gastos filtrados (poner el bucle en generarDatosEstaticos.js) es el correcto (si corriges el error de la variable que te he comentado, claro 😉). Eso sí, para que funcione correctamente deberás quitar el bucle de gestionPresupuestoWeb.js:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/01dac107cd0b23e56a3fa71b036f906c52fab6fd/js/gestionPresupuestoWeb.js#L9 Y renombrar el parámetro para que se llame gasto en lugar de gastos.

Un saludo, ánimo y paciencia, que no hace falta que corras tanto!!!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/issues/7#issuecomment-962945150, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUM3WNKYXGLB23F33OQKKWLUK6HHVANCNFSM5HNXMTJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

pedroprieto commented 3 years ago

Si no digo que no vayas rápido... Pero a veces ir rápido no te lleva a ningún sitio, nada más que a quedarte parado.

Como ahora, por ejemplo. ¿Qué tipo de error tienes? imagen

Parece ser que haces append sobre un elemento nulo. Si ejecutas la web en el navegador y muestras la consola: imagen

Parece ser que raiz es null. raiz en tu código es: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/js/gestionPresupuestoWeb.js#L46

Por tanto, parece que estás pasando un idElemento que no existe. Tras revisar el código donde llamas a esa función, en generarDatosEstaticos.js descubres que: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/js/generarDatosEstaticos.js#L41

Por tanto, parece que listado-gastos-filtrados-1 no es un id válido. Con esto, vas al html y descubres que: https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/interaccionHTML.html#L26

Te sobra una s :tada:

Ánimo y paciencia!!!

HiginioUrbano commented 3 years ago

TIenes razón, lo siento Pedro, esta práctica en concreto me ha agotado mentalmente y me está costando verlo todo el triple que de normal. Intentaré prestar más atención aún.

El lun, 8 nov 2021 a las 10:42, Pedro Prieto @.***>) escribió:

Si no digo que no vayas rápido... Pero a veces ir rápido no te lleva a ningún sitio, nada más que a quedarte parado.

Como ahora, por ejemplo. ¿Qué tipo de error tienes? [image: imagen] https://user-images.githubusercontent.com/7632447/140718713-ba2da4a9-5eaa-4e58-92a6-24b9fbd68c42.png

Parece ser que haces append sobre un elemento nulo. Si ejecutas la web en el navegador y muestras la consola: [image: imagen] https://user-images.githubusercontent.com/7632447/140718824-40bf1e6e-92d7-4ca8-90b0-a6903a593388.png

Parece ser que raiz es null. raiz en tu código es:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/js/gestionPresupuestoWeb.js#L46

Por tanto, parece que estás pasando un idElemento que no existe. Tras revisar el código donde llamas a esa función, en generarDatosEstaticos.js descubres que:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/js/generarDatosEstaticos.js#L41

Por tanto, parece que listado-gastos-filtrados-1 no es un id válido. Con esto, vas al html y descubres que:

https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/blob/b6d9fc24df7ebf9909688fe5936f612964a41676/interaccionHTML.html#L26

Te sobra una s 🎉

Ánimo y paciencia!!!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/HiginioUrbano/practica_dwec_gestor_presupuesto/issues/7#issuecomment-962975579, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUM3WNPG6BWXEMJONVLRHCDUK6LSDANCNFSM5HNXMTJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

pedroprieto commented 3 years ago

Nada, hombre. Tranquilo y pregunta lo que haga falta!! Para eso estoy!! :wink:

Con respecto a lo de la rapidez, solo trataba de transmitirte calma, igual no lo he conseguido del todo. Vas bien en las entregas, no vas retrasado en exceso. Ten en cuenta que en las tutorías de cada semana comento los detalles más complicados y los problemas más habituales de las prácticas de la semana anterior. Si te esperas a la grabación de la tutoría la práctica te resultará más sencilla (o eso espero :wink: )

Ánimo pues!!