#78 Una web más rápida en 2024

Color theme switcher

Una web más rápida en 2024

¿2024 puede ser el año del performance en la Web? Quizás si, si nos lo proponemos. 🤠 

Color theme switcher

De regalo de fin de año o año nuevo, aprendamos a crear themes para nuestros proyectos web y dar una opción de accesibilidad a usuarios sobre cómo quieren consumir la Web.

HERRAMIENTA
React Markdown

Existe MDX, pero también puedes trabajar Markdown con React de otras maneras, por ejemplo utilizando esta biblioteca.

React Datasheet Grid

Office Tv Youre Welcome GIF by The Office

Esta es una herramienta que sí o si necesitas tener en tu cinturón de herramientas para construir Dashboard apps. Nos lo agradecerás luego. 😉 

INSPIRACIÓN
React Winplaza 98

Microsoft Windows 90S GIF

Deja que la inspiración llegue a ti creando proyectos con el look and feel de Windows 98.

NOTICIA
Presentando React Components para la API de JavaScripts Maps

Google Maps GIF by EscuelaDevRock

Ya tenemos una nueva biblioteca optimizada para React, para construir Mapas utilizando la API Google Maps.

VACANTE
Senior Software Engineer

Terminal, está en busca de un Ingeniero Frontend con más de 6 años de experiencia profesional como ingeniero de software, conocimiento profundo de los patrones, la arquitectura y las mejores prácticas de ingeniería de software front-end. Experiencia con Javascript moderno y ReactJS. Experiencia con CSS moderno. Experiencia en la creación de API GraphQL (Apollo). Competencia en la escritura de código basado en pruebas (Jest). BS o M.S. Licenciatura en Informática o título equivalente en Ingeniería.

CHALLENGE

Escribir una función en JavaScript que compare si dos objetos son iguales, no solo en términos de estructura, sino también en el contenido, incluyendo la comparación de objetos anidados.

En JavaScript, comparar objetos puede ser complicado, especialmente si contienen otros objetos anidados o arrays. El operador === solo verifica si dos objetos son exactamente la misma instancia, no si tienen el mismo contenido. Tu tarea es escribir una función deepEqual que tome dos objetos como argumentos y devuelva true si son iguales en términos de estructura y contenido, y false de lo contrario.

Descripción del Reto:

  • La función deepEqual debe ser capaz de comparar propiedades y sus valores, incluyendo objetos y arrays anidados.

  • No es necesario preocuparse por las propiedades de los prototipos, solo por las propiedades propias del objeto.

  • Considera la posibilidad de que algunos valores puedan ser null o undefined.

Ejemplo:

let obj1 = { a: 1, b: { c: 3 } };
let obj2 = { a: 1, b: { c: 3 } };

console.log(deepEqual(obj1, obj2)); // true

obj2.b.c = 4;
console.log(deepEqual(obj1, obj2)); // false

RESULTADO

function deepEqual(obj1, obj2) {
    if (obj1 === obj2) {
        return true;
    }

    if (typeof obj1 !== "object" || obj1 === null || typeof obj2 !== "object" || obj2 === null) {
        return false;
    }

    let entriesObj1 = Object.entries(obj1);
    let entriesObj2 = Object.entries(obj2);

    if (entriesObj1.length !== entriesObj2.length) {
        return false;
    }

    for (let [key, value] of entriesObj1) {
        if (!obj2.hasOwnProperty(key) || !deepEqual(value, obj2[key])) {
            return false;
        }
    }

    return true;
}

Tu feedback nos ayuda a mejorar

Por favor elige una opción y dinos lo qué te gustó y lo que no. Leemos todas las respuestas 👀

¿Qué te pareció el email de hoy?

Iniciar Sesión o Suscríbete para participar en las encuestas.

¡Hasta mañana! 🤟