Récemment, le projet a rencontré un problème pour juger des objets vides. Veuillez consulter les informations pertinentes et les résumer.
Juger un objet vide n'est plus le même que juger une chaîne vide, car un objet vide est également un objet, et la mémoire doit être allouée séparément, plutôt que d'être vide comme une chaîne, c'est un gros pot de riz. Tout le monde est égal, comme suit:
Comme le montre le code ci-dessus, on peut constater que s'il s'agit d'un objet vide créé via l'objet littéral ou un objet vide créé via le constructeur d'objets, il n'est pas égal les uns aux autres.
1. Convertir l'objet en chaîne pour comparaison
Cette méthode n'est pas recommandée, mais il est en effet le plus facile à penser. Il utilise principalement JSON.Stringify () pour forcer l'objet. Il est publié pour un coup d'œil:
var a = {}; var b = nouvel objet (); console.log ("Résultat de comparaison des littéraux d'objets:" + (json.stringify (a) == "{}")) Console.log ("Résultat de comparaison du constructeur:" + (json.stringify (b) == "{}")))Nous pouvons obtenir que la comparaison entre deux objets vides convertis en chaînes est vraie, ce qui peut résoudre ce problème, mais il n'est pas recommandé. Parlons de la deuxième méthode ci-dessous.
2.Pour en boucle
Utilisez une boucle FOR pour itérer à travers tous les attributs pour déterminer si l'objet est un objet vide:
var a = {}; var b = nouveau objet (); fonction isEmpTyObject (obj) {for (var key in obj) {return false}; return true}; if (isEmpTyObject (a)) {alert ("a est un objet vide")} if (isEmpTyObject (b)) {alert ("b est un objet vide")}Utilisez la boucle FOR IN pour boucler l'objet lors de la boucle et l'indice de boucle correspondant lors de la boucle du tableau, tel que:
var b = ["hello", "my", "world"] for (var index in b) {console.log (b [index]);} // bonjour mon mondeCe qui précède est tout le contenu (titre) qui vous a été apporté par l'éditeur. J'espère que vous soutiendrez Wulin.com plus ~