Introducción
En este laboratorio, exploraremos la función matchesWith en JavaScript. El propósito de este laboratorio es aprender a comparar dos objetos y determinar si contienen valores de propiedad equivalentes en base a una función proporcionada. Utilizaremos Object.keys(), Array.prototype.every() y Object.prototype.hasOwnProperty() para completar esta tarea.
Emparejar Propiedades de Objetos con una Función
Para comenzar a practicar la codificación, abre la Terminal/SSH y escribe node.
Esta función compara dos objetos y verifica si el primer objeto contiene valores de propiedad equivalentes al segundo. Lo hace en base a una función proporcionada.
Para usar esta función, sigue estos pasos:
- Utiliza
Object.keys()para recuperar todas las claves del segundo objeto. - Utiliza
Array.prototype.every(),Object.prototype.hasOwnProperty()y la función proporcionada para determinar si todas las claves existen en el primer objeto y tienen valores equivalentes. - Si no se proporciona ninguna función, los valores se compararán utilizando el operador de igualdad.
const matchesWith = (obj, source, fn) =>
Object.keys(source).every((key) =>
obj.hasOwnProperty(key) && fn
? fn(obj[key], source[key], key, obj, source)
: obj[key] == source[key]
);
A continuación, se muestra un ejemplo de cómo usar esta función:
const isGreeting = (val) => /^h(?:i|ello)$/.test(val);
matchesWith(
{ greeting: "hello" },
{ greeting: "hi" },
(oV, sV) => isGreeting(oV) && isGreeting(sV)
); // true
Este ejemplo verifica si los dos objetos tienen valores equivalentes para la propiedad greeting. Utiliza la función isGreeting para asegurarse de que ambos valores son saludos válidos.
Resumen
¡Felicidades! Has completado el laboratorio de Emparejar Propiedades de Objetos Basado en Función. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.