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.