Comprobar si un objeto está vacío

Introducción

Los objetos se utilizan para almacenar una colección de propiedades, cada una de las cuales puede considerarse como una asociación entre un nombre (o llave) y un evaluar (una coleccion de valor clave pares).

En esta guía, exploraremos muchos métodos de JavaScript para verificar si un objeto está vacío. Usaremos Vanilla JavaScript, así como bibliotecas comunes como lodash y guión bajo.

Cuando se trata de aplicaciones pequeñas que no requieren dependencias externas, es mejor verificar si un objeto está vacío con JavaScript puro. Sin embargo, si su aplicación ya tiene bibliotecas externas como Lodash y subrayar - también ofrecen excelentes formas de realizar estas comprobaciones.

Comprobar si un objeto está vacío o no es una operación básica y frecuente, sin embargo, existen varios métodos para determinar si está vacío o no.

Comencemos creando un objeto vacío con la sintaxis de objeto literal:

const emptyObject = {}

Al usar el Objeto.claves() Método

Object.keys() es un método estático que devuelve un Array cuando le pasamos un objeto, que contiene los nombres de propiedades (claves) pertenecientes a ese objeto. Podemos comprobar si el length de esta mesa es 0 o mayor, que indica si las claves están presentes o no. Si no hay clave presente, el objeto está vacío:

Object.keys(obj).length === 0 && obj.constructor === Object;

Notar: La verificación del constructor asegura que el argumento pasado sea de hecho un objeto.

También podríamos crear una función reutilizable, si usa el cheque varias veces en el proyecto:

const isEmptyObject = (obj) => {
    return Object.keys(obj).length === 0 && obj.constructor === Object;
}

console.log(isEmptyObject(emptyObject)); 

Este es, con mucho, el método más fácil para determinar si un objeto está vacío; sin embargo, es un poco detallado. Eliminaremos esta verbosidad con los siguientes enfoques: después de revisar el Object.values() y Object.entries() métodos estáticos, que se pueden utilizar de la misma manera que Object.keys().

Al usar el Objeto.valores() Método

Al igual que con las llaves, si un objeto no tiene values asociado (ni siquiera un undefined/null) - esta vacio:

const isEmptyObject = (obj) => {
    return Object.values(obj).length === 0 && obj.constructor === Object;
}

console.log(isEmptyObject(emptyObject)); 
Al usar el Objeto.entradas() Método

los entries() El método representa todos los pares clave-valor (entradas), que se pueden utilizar como contenedor para los dos enfoques anteriores:

const isEmptyObject = (obj) => {
    return Object.entries(obj).length === 0 && obj.constructor === Object;
}

console.log(isEmptyObject(emptyObject)); 

para... en y tiene propiedad propia ()

Para navegadores que no soportan el keys(), values() y entries() métodos: ¡puede recorrer las propiedades de forma explícita! Puede envolver esta lógica en un método que devuelve true si no se encontraron propiedades, y false si se encontraran propiedades:

const isEmptyObject = (objectName) => {
    for (var prop in objectName) {
        if (objectName.hasOwnProperty(prop)) {
            return false;
        }
    }
    return true;
}

console.log(isEmptyObject(emptyObject)); 

Usando JSON.stringify

Este es uno de los métodos más fáciles de usar. cuando nosotros encadenar un objeto y la salida es solo un paréntesis de apertura y cierre, sabemos que el elemento está vacío:

JSON.stringify(objectName) === '{}';

Podríamos estar envueltos fácilmente en una función:

const isEmptyObject = (objectName) => {
    return JSON.stringify(objectName) === '{}';
}

console.log(isEmptyObject(emptyObject)); 

Compruebe si el objeto está vacío con las bibliotecas de JavaScript

Las bibliotecas nos ayudan a escribir código más rápido, incorporando funciones avanzadas utilizadas y perfeccionadas por muchos otros desarrolladores, en lugar de escribir nuestras propias soluciones.

Las bibliotecas son comunes, generalmente rápidas/optimizadas, y algunas están presentes en muchos proyectos debido a su utilidad. Varios de ellos también se pueden utilizar para comprobar si un objeto está vacío o no. La mayoría de ellos ofrecen una excelente compatibilidad con navegadores más antiguos.

Usar guión bajo y Lodash

Los dos Lodash y subrayar son bibliotecas de utilidades que ofrecen una serie de utilidades comunes. Ambos son generalmente importados como _y se puede importar a través de un CDN:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/underscore-umd-min.js"></script>

Consulte nuestra guía útil y práctica para aprender Git, con las mejores prácticas, los estándares aceptados por la industria y la hoja de trucos incluida. Deja de buscar en Google los comandos de Git y, de hecho, aprender ¡esta!

O instaló un administrador de paquetes como NPM y luego lo importó a través del require() sintaxis:

$ npm install lodash
$ npm install underscore
const _ = require('lodash');
const _ = require('underscore');

Ambas bibliotecas tienen exactamente la misma sintaxis para verificar si un objeto está vacío:

_.isEmpty();

Esta función funciona con cualquier estructura de datos: listas, matrices, cadenas, objetos, etc. La función es una lógica envolvente que verifica la longitud del objeto que se pasó, devolviendo true Donde false:

_.isEmpty(emptyObject); 
jQuery

jQuery es una biblioteca de JavaScript popular, presente en muchos proyectos en todo el mundo. Debido a su ligereza y características que amplían el alcance de las capacidades integradas de JavaScript, se ha convertido en imprescindible.

jQuery se puede importar a través de un CDN:

<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>

O instaló un administrador de paquetes como NPM y luego lo importó a través del require() sintaxis:

$ npm install jquery

Suele importarse como $:

const $ = require('jquery');

Por supuesto, puede usarlo para verificar si un objeto está vacío o no:

$.isEmptyObject(emptyObject); 
Ramda

Ramda es un funcional ¡Biblioteca JavaScript! Nunca modifica los datos y admite la creación de canalizaciones puramente funcionales. Para aquellos con un fondo de programación más funcional, esta es una gran biblioteca con la que sentirse cómodo.

Ramda se puede importar a través de un CDN:

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.28.0/ramda.min.js"></script>

O instaló un administrador de paquetes como NPM y luego lo importó a través del require() sintaxis:

$ npm install ramda

Suele importarse como R:

const R = require('ramda');

Si ya lo usa, ofrece una isEmpty() Además trabajo:

R.isEmpty(emptyObject); 
Gancho

@hapi/hoek es parte de la ecosistema felizy una popular biblioteca de métodos de utilidad para aplicaciones basadas en hapi. ofrece un deepEqual() método, que comprueba si dos objetos son idénticos (en profundidad):

Hoek.deepEqual({}, emptyObject); 

Conclusión

En este artículo hemos visto cómo comprobar si un objeto está vacío o no en JavaScript. Para ello, utilizamos varios enfoques Vanilla JS, jQuery, Underscore, Lodash, Ramda, Hoek y el módulo JSON.

Si quieres conocer otros artículos parecidos a Comprobar si un objeto está vacío puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas