Maison > interface Web > js tutoriel > le corps du texte

[Leetcode] L'objet est-il vide

Linda Hamilton
Libérer: 2024-10-02 22:31:30
original
659 Les gens l'ont consulté

[Leetcode] Is Object Empty

Lien de la question : https://leetcode.com/problems/is-object-empty/description/

[Énoncé du problème]

Étant donné un objet ou un tableau, renvoie s'il est vide.

  • Un objet vide ne contient aucune paire clé-valeur.
  • Un tableau vide ne contient aucun élément.

Vous pouvez supposer que l'objet ou le tableau est la sortie de JSON.parse.

[Question de compréhension]

  1. Alors... nous obtenons soit un tableau, soit un objet comme paramètre de cette fonction appelée obj. (Ouais, je sais, nom super créatif, mais ça aura du sens plus tard !)

  2. Notre tâche ? Effectuez quelques tours de codage magiques pour déterminer d'abord si cet obj est un tableau ou un objet. Ensuite, sur la base de ces connaissances, nous déciderons quoi faire ensuite.

  3. Enfin, nous devons vérifier si cet objet/tableau est vide ou non. Simple, non ? (Ou est-ce...)

[Points clés]

  1. Tout d'abord : "Un tableau est techniquement un objet en JavaScript." Ouais! C'est vrai, les tableaux sont un type spécial d'objet en JS. Alors ne vous y trompez pas !

  2. Détection d'objet 101 : Nous pouvons vérifier si le paramètre est réellement un objet (ou un tableau) en utilisant typeof obj === 'object' && obj !== null. Pourquoi la partie !== null ? Eh bien, parce que null est un cas particulier en JS. Même s'il est techniquement de type objet, c'est comme le vide du néant. Donc, on exclut ça, au cas où (même si le problème ne le mentionne pas explicitement, c'est une bonne habitude).

  3. Éléments non définis et nuls : les objets et les tableaux peuvent avoir des propriétés/éléments non définis ou nuls. Mais ne vous inquiétez pas, ils compteront toujours lorsque nous vérifierons la longueur. Ils n’obtiennent pas de laissez-passer gratuit grâce à notre validation !

  4. Est-ce un tableau ? : Nous pouvons vérifier si le paramètre est un tableau en utilisant Array.isArray(obj). Cependant, il n’est pas nécessaire de vérifier à nouveau s’il s’agit d’un objet : nous l’avons déjà fait plus tôt.

[Code de solution]

var isEmpty = function (obj) {
  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null
    if (Array.isArray(obj)) { // If it's an array
      return obj.length === 0; // Return true if it's empty
    } else { // If it's an object
      return Object.keys(obj).length === 0; // Return true if there are no keys
    }
  }
  return false; // If it's neither an object nor an array, return false
};

Copier après la connexion

[Le décomposer... encore plus loin]

Étape 1 : Vérifiez s'il s'agit d'un objet
Tout d'abord, nous utilisons typeof obj === 'object' && obj !== null pour garantir que l'entrée est un objet et non nulle. (Parce que nous savons tous que typeof null === 'object est l'une des bizarreries de JavaScript. Merci, JavaScript !)

Étape 2 : Est-ce un tableau ?
Nous utilisons Array.isArray(obj) pour faire la distinction entre les tableaux et les objets normaux. Les tableaux ont une propriété length, nous pouvons donc vérifier directement si obj.length === 0.

Étape 3 : Est-ce un objet ?
Si ce n'est pas un tableau, on vérifie si c'est un objet en utilisant Object.keys(obj).length === 0. Cette méthode renvoie le nombre de clés dans l'objet. Pas de clés ? C'est vide !

Étape 4 : Cas par défaut
Si l'entrée n'est pas un objet (ou si elle est nulle), nous renvoyons false car la question précise que nous travaillons uniquement avec des objets ou des tableaux.

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:dev.to
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!