Emparejar Propiedades de Objetos Basado en Función

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") subgraph Lab Skills javascript/variables -.-> lab-28337{{"Emparejar Propiedades de Objetos Basado en Función"}} javascript/data_types -.-> lab-28337{{"Emparejar Propiedades de Objetos Basado en Función"}} javascript/arith_ops -.-> lab-28337{{"Emparejar Propiedades de Objetos Basado en Función"}} javascript/comp_ops -.-> lab-28337{{"Emparejar Propiedades de Objetos Basado en Función"}} javascript/array_methods -.-> lab-28337{{"Emparejar Propiedades de Objetos Basado en Función"}} end

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.