Maison > interface Web > js tutoriel > Comment puis-je trouver efficacement les différences entre deux tableaux d'objets JavaScript ?

Comment puis-je trouver efficacement les différences entre deux tableaux d'objets JavaScript ?

Linda Hamilton
Libérer: 2024-12-09 10:04:08
original
903 Les gens l'ont consulté

How Can I Efficiently Find the Differences Between Two JavaScript Object Arrays?

Trouver la différence entre deux tableaux d'objets en JavaScript

En JavaScript, vous pouvez rencontrer le besoin de déterminer la différence entre deux tableaux d'objets . Par exemple, vous pouvez avoir deux ensembles de résultats que vous souhaitez comparer et identifier les objets qui n'existent que dans l'un mais pas dans l'autre.

Pour y parvenir, vous pouvez tirer parti d'une combinaison de fonctions JS natives et d'un outil personnalisé. fonction de comparaison. Voici comment procéder :

  1. Définir une fonction de comparaison :

    const isSameUser = (a, b) => a.value === b.value && a.display === b.display;
    Copier après la connexion

Cette fonction déterminera si deux objets sont égaux en fonction de leur « valeur » et de leur « affichage » propriétés.

  1. Utilisez la fonction 'onlyInLeft' :

    const onlyInLeft = (left, right, compareFunction) => 
      left.filter(leftValue =>
     !right.some(rightValue => 
       compareFunction(leftValue, rightValue)));
    Copier après la connexion

Cette fonction prend trois arguments : la gauche tableau, le tableau de droite et la fonction de comparaison. Il filtre les éléments du tableau de gauche qui n'ont pas d'éléments correspondants dans le tableau de droite en fonction de la fonction de comparaison définie.

  1. Utilisez la fonction « onlyInLeft » pour rechercher les différences. :

    const onlyInA = onlyInLeft(a, b, isSameUser);
    const onlyInB = onlyInLeft(b, a, isSameUser);
    Copier après la connexion

Ce code applique la fonction 'onlyInLeft' aux deux tableaux, en utilisant la fonction de comparaison pour déterminer les différences.

  1. Créez le résultat final :

    const result = [...onlyInA, ...onlyInB];
    Copier après la connexion

Enfin, le Le tableau 'result' contient les objets présents dans un tableau mais pas dans l'autre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal