#69 Presentando Angular 17

Construyendo los sitios web mas ambiciosos con Nextjs 14

Presentando Angular 17

El 8 de Noviembre salió Angular versión 17, y en este articulo, el equipo del framework te cuenta las novedades que trae esta versión.

Construyendo los sitios web mas ambiciosos con Nextjs 14

Vercel habla de las estadísticas que están viendo en relación a Next.js y lo que espera a futuro.

HERRAMIENTA
Capture Website

Camera Photographer GIF by Travis

Con esta herramienta podrás tomar capturar de pantalla de tus páginas web.

JSON Viewer

computer throw GIF

¿No detestas cuando estas trabajando con archivos JSON muy largos y un carácter esta mal? ¡Con esta herramienta no tendrás que volver a sufrirlo!

VIDEO
¿Por qué las señales son mejores que los Hooks?

¿Haz pensado en usar Signals en lugar de React Hooks?, en este video hablan al respecto

VACANTE
Frontend Lead (REACT)

En eSave están en fase de plena expansión, y quieren incorporar un lead para su área de desarrollo de software frontend.

CHALLENGE

Crea una función en JavaScript que permita filtrar una lista de usuarios basándose en un criterio de búsqueda. La función debe aceptar dos parámetros: un arreglo de objetos usuario y una cadena de texto de búsqueda. Cada objeto usuario tendrá propiedades como nombre, email y ciudad.

La función debe retornar un nuevo arreglo que contenga solo aquellos usuarios cuyos datos coincidan en alguna medida con la cadena de búsqueda.

Ejemplo: Supón que tienes el siguiente arreglo de usuarios:

let usuarios = [
    { nombre: "Ana Pérez", email: "[email protected]", ciudad: "Madrid" },
    { nombre: "Luis Gómez", email: "[email protected]", ciudad: "Barcelona" },
    { nombre: "Carlos Díaz", email: "[email protected]", ciudad: "Valencia" }
];

Si la función se llama filtrarUsuarios y se ejecuta así:

console.log(filtrarUsuarios(usuarios, 'Madrid'));

Debería devolver solo los usuarios que tienen relación con "Madrid".

Consideraciones:

  • La búsqueda no debería ser sensible a mayúsculas o minúsculas.

  • Considera que la coincidencia puede ser parcial, es decir, si buscas "Ana", debería devolver cualquier usuario cuyo nombre contenga "Ana".

RESULTADO

function filtrarUsuarios(usuarios, busqueda) {
    // Convierte la búsqueda a minúsculas para la comparación
    let busquedaMin = busqueda.toLowerCase();

    // Filtra y devuelve los usuarios que coinciden
    return usuarios.filter(usuario => {
        return Object.values(usuario).some(valor => 
            valor.toLowerCase().includes(busquedaMin)
        );
    });
}

let usuarios = [
    { nombre: "Ana Pérez", email: "[email protected]", ciudad: "Madrid" },
    { nombre: "Luis Gómez", email: "[email protected]", ciudad: "Barcelona" },
    { nombre: "Carlos Díaz", email: "[email protected]", ciudad: "Valencia" }
];

console.log(filtrarUsuarios(usuarios, 'Madrid'));

Explicación:

  • Object.values(usuario): Obtiene todos los valores de las propiedades del objeto usuario.

  • some(...): Revisa si al menos uno de los valores del usuario coincide con la cadena de búsqueda.

  • toLowerCase(): Asegura que la comparación no sea sensible a mayúsculas o minúsculas.

  • includes(busquedaMin): Verifica si el valor actual contiene la cadena de búsqueda.

¡Hasta mañana! 🤟