recherche
Maisoninterface WebQuestions et réponses frontalesComment déterminer si deux JSON sont égaux en javascript

Dans le travail de programmation quotidien, juger si deux JSON sont égaux est un problème très courant. En JavaScript, nous pouvons déterminer si deux JSON sont égaux en comparant les valeurs des propriétés dans les objets JSON. Cet article abordera plusieurs façons de déterminer si deux JSON sont égaux en JavaScript, notamment des comparaisons approfondies et des comparaisons superficielles.

1. Comparaison superficielle

La comparaison superficielle est une méthode relativement basique, généralement utilisée pour déterminer si les attributs de deux objets JSON sont égaux. Les comparaisons superficielles comparent uniquement les propriétés de niveau supérieur d'un objet JSON et ne comparent pas de manière récursive les propriétés imbriquées des objets.

Ce qui suit est un exemple de code qui utilise une méthode de comparaison superficielle pour déterminer si deux JSON sont égaux :

function shallowEqual(obj1, obj2) {
  const keys1 = Object.keys(obj1);
  const keys2 = Object.keys(obj2);

  if (keys1.length !== keys2.length) {
    return false;
  }

  for (let i = 0; i <p>Dans l'exemple de code ci-dessus, nous définissons une fonction nommée ShallowEqual, qui accepte deux paramètres obj1 et obj2 , utilisée pour comparer si les deux JSON sont égaux. La fonction utilise d'abord la méthode Object.keys() pour obtenir les listes de noms d'attribut de obj1 et obj2, puis compare les deux listes pour vérifier leur égalité. Si ce n'est pas égal, la fonction renvoie false, sinon parcourt chaque attribut de obj1 et compare si sa valeur est égale à la valeur de l'attribut correspondant dans obj2. Si l'une des valeurs n'est pas égale, la fonction renvoie faux, sinon elle renvoie vrai. </p><p>2. Comparaison approfondie</p><p>La comparaison approfondie est une méthode plus complexe, qui est utilisée pour comparer si tous les attributs de deux objets JSON sont égaux, y compris les attributs imbriqués des objets. Lorsque nous utilisons la méthode de comparaison approfondie, nous devons parcourir de manière récursive toutes les propriétés de l'objet JSON et comparer si leurs valeurs sont égales. </p><p>Ce qui suit est un exemple de code qui utilise la méthode de comparaison approfondie pour déterminer si deux JSON sont égaux : </p><pre class="brush:php;toolbar:false">function deepEqual(obj1, obj2) {
  if (obj1 === obj2) {
    return true;
  }

  if (typeof obj1 !== typeof obj2) {
    return false;
  }

  if (Array.isArray(obj1) !== Array.isArray(obj2)) {
    return false;
  }

  if (typeof obj1 === "object" && obj1 !== null && obj2 !== null) {
    const keys1 = Object.keys(obj1);
    const keys2 = Object.keys(obj2);

    if (keys1.length !== keys2.length) {
      return false;
    }

    for (const key of keys1) {
      if (!obj2.hasOwnProperty(key)) {
        return false;
      }

      if (!deepEqual(obj1[key], obj2[key])) {
        return false;
      }
    }

    return true;
  }

  return obj1 === obj2;
}

const obj1 = { a: 1, b: ["foo", "bar"], c: { d: true } };
const obj2 = { a: 1, b: ["foo", "bar"], c: { d: true } };
const obj3 = { a: 1, b: ["foo", "bar"], c: { d: false } };

console.log(deepEqual(obj1, obj2)); // true
console.log(deepEqual(obj1, obj3)); // false

Dans l'exemple de code ci-dessus, nous définissons une fonction nommée deepEqual, qui accepte deux paramètres obj1 et obj2, utilisée pour comparer si deux JSON sont égaux. Cette fonction détermine d'abord si obj1 et obj2 sont exactement égaux et si c'est le cas, renvoie vrai. Ensuite, il vérifie si obj1 et obj2 sont du même type et renvoie false sinon. Il vérifie ensuite si obj1 et obj2 sont de type tableau ou de type objet et renvoie false si l'un est de type tableau et l'autre de type objet. Si les deux objets JSON sont de type objet, utilisez la méthode Object.keys() pour obtenir une liste de leurs noms de propriété et comparez les deux listes pour vérifier leur égalité. Ensuite, la fonction deepEqual est appelée de manière récursive pour chaque attribut de obj1 afin de comparer si les valeurs des attributs correspondants dans obj1 et obj2 sont égales. Si les valeurs de l'une des propriétés ne sont pas égales, la fonction renvoie faux, sinon elle renvoie vrai.

Conclusion

Déterminer si deux JSON sont égaux en JavaScript est une opération très utile. Il existe de nombreuses façons de résoudre ce problème, que ce soit en utilisant des comparaisons superficielles ou des comparaisons approfondies. Si vous avez uniquement besoin de comparer les propriétés de niveau supérieur d'un objet JSON, utilisez des méthodes de comparaison superficielles. Si vous devez comparer toutes les propriétés d'un objet JSON, y compris les propriétés imbriquées, utilisez la méthode de comparaison approfondie pour résoudre le problème. Quelle que soit la méthode que vous choisissez, n'oubliez pas de tester votre solution pour vous assurer qu'elle compare correctement deux objets JSON pour vérifier leur égalité.

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!

Déclaration
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
Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires?Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires?Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Expliquez le concept de chargement paresseux.Expliquez le concept de chargement paresseux.Mar 13, 2025 pm 07:47 PM

Le chargement paresseux retarde le chargement du contenu jusqu'à ce qu'il soit nécessaire, améliorant les performances du Web et l'expérience utilisateur en réduisant les temps de chargement initiaux et la charge du serveur.

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable?Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable?Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Comment fonctionne le currying en JavaScript et quels sont ses avantages?Comment fonctionne le currying en JavaScript et quels sont ses avantages?Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Comment fonctionne l'algorithme de réconciliation React?Comment fonctionne l'algorithme de réconciliation React?Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants?Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants?Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements?Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements?Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés?Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés?Mar 19, 2025 pm 04:16 PM

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.