"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > [Leetcode] L'objet est-il vide

[Leetcode] L'objet est-il vide

Publié le 2024-11-04
Parcourir:819

[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. Sooo... 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 dans 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. Nous excluons donc cela, juste 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 ne bénéficient pas d'un 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
};

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

Déclaration de sortie Cet article est reproduit sur : https://dev.to/luvsense/leetcode-2727-is-object-empty-5h8k?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3