


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!

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.

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.

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.

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

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

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.

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é.

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.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

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
L'éditeur open source le plus populaire

Dreamweaver Mac
Outils de développement Web visuel

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

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.
