Correspondance de propriétés d'objet basée sur une fonction

JavaScriptJavaScriptBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer la fonction matchesWith en JavaScript. Le but de ce laboratoire est d'apprendre à comparer deux objets et à déterminer s'ils contiennent des valeurs de propriété équivalentes sur la base d'une fonction fournie. Nous utiliserons Object.keys(), Array.prototype.every() et Object.prototype.hasOwnProperty() pour accomplir cette tâche.

Correspondance de propriétés d'objet avec une fonction

Pour commencer à pratiquer la programmation, ouvrez le Terminal/SSH et tapez node.

Cette fonction compare deux objets et vérifie si le premier objet contient des valeurs de propriété équivalentes à celles du second. Elle le fait sur la base d'une fonction fournie.

Pour utiliser cette fonction, suivez ces étapes :

  • Utilisez Object.keys() pour récupérer toutes les clés du second objet.
  • Utilisez Array.prototype.every(), Object.prototype.hasOwnProperty() et la fonction fournie pour déterminer si toutes les clés existent dans le premier objet et ont des valeurs équivalentes.
  • Si aucune fonction n'est fournie, les valeurs seront comparées à l'aide de l'opérateur d'égalité.
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]
  );

Voici un exemple d'utilisation de cette fonction :

const isGreeting = (val) => /^h(?:i|ello)$/.test(val);
matchesWith(
  { greeting: "hello" },
  { greeting: "hi" },
  (oV, sV) => isGreeting(oV) && isGreeting(sV)
); // true

Cet exemple vérifie si les deux objets ont des valeurs équivalentes pour la propriété greeting. Il utilise la fonction isGreeting pour s'assurer que les deux valeurs sont des salutations valides.

Résumé

Félicitations ! Vous avez terminé le laboratoire sur la correspondance de propriétés d'objet basée sur une fonction. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.