👨🏼‍💻

khriztianmoreno's Blog

Inicio Etiquetas Acerca |

Posts with tag spot-the-bug

Spot the Bug - N_02

2025-01-29
spot-the-bugchallenge

¡Atención, cazadores de bugs! Tenemos un nuevo desafío para ti. Este fragmento de código JavaScript se supone que enriquece una lista de eventos con metadatos de usuario. Pero, ¿todo funciona como debería?const enrichEvents = (events) => { const metadata = { usr_789: { tier: "premium", joined: "2023-04-01" }, }; const enriched = events.map(event => { id: event.id, time: event.time, user: metadata[event.userId], value: event.properties.totalValue } ); return enriched; }; const events = [ { id: "evt_123", time: "2024-12-10T10:00:00Z", userId: "usr_789", properties: { totalValue: 99.99, }, }, ]; console.log(enrichEvents(events));Tu misión:Encuentra el error: Hay un pequeño error que impide que el código funcione correctamente. ¿Puedes encontrarlo?Explícalo: Una vez que hayas encontrado el problema, explica por qué crees que es un error y cuál sería la solución correcta.Sugiere mejoras: Si ves algo que podría optimizarse o mejorarse en el código, ¡no dudes en compartir tus sugerencias!¡Acepta el desafío y demuestra tus habilidades de depuración!<details> <summary>🚀 Solución 👩🏻‍💻🐛👨🏼‍💻</summary>Lo más probable es que tu IDE detecte este error por ti, pero hay un error de sintaxis. La función map es una función flecha que devuelve implícitamente el resultado de la expresión dentro del bloque. En este caso, el bloque no es una expresión válida, por lo que el código lanzará un error de sintaxis. Para solucionarlo, puedes envolver el objeto entre paréntesis para convertirlo en una expresión.const enrichEvents = (events) => { const metadata = { usr_789: { tier: "premium", joined: "2023-04-01" }, }; const enriched = events.map((event) => ({ id: event.id, time: event.time, user: metadata[event.userId], value: event.properties.totalValue, })); return enriched; }; const events = [ { id: "evt_123", time: "2024-12-10T10:00:00Z", userId: "usr_789", properties: { totalValue: 99.99, }, }, ]; console.log(enrichEvents(events));</details>Profile@khriztianmoreno �

Encuentra el Bug - N_01

2025-01-10
spot-the-bugchallenge

¿Te consideras un detective de código? ️‍👩🏻‍💻🐛👨🏼‍💻 Tenemos un pequeño misterio por resolver. Este fragmento de JavaScript parece funcionar perfectamente, pero esconde un bug bastante peculiar.¿Puedes averiguar qué está pasando y por qué el resultado no es el esperado?¡Acepta el desafío y pon a prueba tus habilidades de programación!function reverseString(str) { return str.split("").reverse().join(""); } const reversedString = reverseString("Hello, 👋!"); console.log(reversedString);Recuerda, la satisfacción de resolver un problema por ti mismo no tiene precio. Intenta investigar y resolverlo antes de ver la respuesta.<details> <summary>🚀 Solución 👩🏻‍💻🐛👨🏼‍💻</summary>Este bug ocurre porque el método split trata la cadena como un array de unidades de 16 bits, no como un array de caracteres, resultando en una salida inesperada: !�� ,olleH.Al usar Array.from(str) o [...str], la cadena se divide en un array de caracteres reales, respetando los pares sustitutos.Usando Array.from:function reverseString(str) { return Array.from(str).reverse().join(""); } const reversedString = reverseString("Hello, 👋!"); console.log(reversedString);Usando el operador de propagación:function reverseString(str) { return [...str].reverse().join(""); } const reversedString = reverseString("Hello, 👋!"); console.log(reversedString);</details>Espero que te haya sido útil y/o te haya enseñado algo nuevoProfile@khriztianmoreno �