Enlace de pregunta: https://leetcode.com/problems/is-object-empty/description/
Dado un objeto o una matriz, devuelve si está vacío.
Puedes asumir que el objeto o matriz es el resultado de JSON.parse.
Muy bien... obtenemos una matriz o un objeto como parámetro para esta función llamada obj. (Sí, lo sé, nombre súper creativo, ¡pero tendrá sentido más adelante!)
¿Nuestra tarea? Realice algunos trucos mágicos de codificación para descubrir primero si este objeto es una matriz o un objeto. Luego, basándonos en ese conocimiento, decidiremos qué hacer a continuación.
Finalmente, necesitamos verificar si este objeto/matriz está vacío o no. Sencillo, ¿verdad? (O es...)
Lo primero es lo primero: "Una matriz es técnicamente un objeto en JavaScript". ¡Sí! Así es, las matrices son un tipo especial de objeto en JS. Así que ¡no te confundas!
Detección de objetos 101: Podemos verificar si el parámetro es realmente un objeto (o matriz) usando typeof obj === 'object' && obj !== null. ¿Por qué la parte !== nula? Bueno, porque nulo es un caso especial en JS. Aunque técnicamente es del tipo objeto, es como el vacío de la nada. Así que lo excluimos, por si acaso (aunque el problema no lo mencione explícitamente, es un buen hábito).
Elementos indefinidos y nulos: Tanto los objetos como las matrices pueden tener propiedades/elementos que no están definidos o son nulos. Pero no te preocupes: seguirán contando cuando comprobemos la longitud. ¡No obtienen un pase gratuito de nuestra validación!
¿Es una matriz?: Podemos verificar si el parámetro es una matriz usando Array.isArray(obj). Sin embargo, no es necesario volver a comprobar si se trata de un objeto; ya lo hicimos antes.
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 };
Paso 1: Verifica si es un objeto
Primero, usamos typeof obj === 'object' && obj !== null para asegurarnos de que la entrada sea un objeto y no nula. (Porque todos sabemos que el objeto typeof null === 'es una de las peculiaridades extrañas de JavaScript. ¡Gracias, JavaScript!)
Paso 2: ¿Es una matriz?
Usamos Array.isArray(obj) para distinguir entre matrices y objetos regulares. Las matrices tienen una propiedad de longitud, por lo que podemos verificar directamente si obj.length === 0.
Paso 3: ¿Es un objeto?
Si no es una matriz, verificamos si es un objeto usando Object.keys(obj).length === 0. Este método devuelve el número de claves en el objeto. ¿Sin llaves? ¡Está vacío!
Paso 4: Caso predeterminado
Si la entrada no es un objeto (o es nula), devolvemos falso porque la pregunta especifica que estamos trabajando solo con objetos o matrices.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3