Mostrando las entradas con la etiqueta JAVASCRIPT. Mostrar todas las entradas
Mostrando las entradas con la etiqueta JAVASCRIPT. Mostrar todas las entradas

lunes, 6 de septiembre de 2021

Javascript: Comprobar si un objeto está vacio.

¿Cómo saber si un objeto en Javascript está vacio o no?

En Python, por ejemplo, la evaluación de un diccionario o lista  que estén vacios (sin contenido), retornará un valor falso.

bool({}) # Retornará False.
bool([]) # Retornará False.

Pero en Javascript es diferente. La evaluación siguiente retornará un valor verdadero, aunque el objeto esté vacio:

// Creamos un objeto y su contenido.
var obj1 = {nombre: "limón", color: "verde"}

// Creamos un objeto vacio.
var obj2 = {}

// Confirmamos la existencia del objeto 1, y es verdadera.
if (obj1) {
  console.log("El objeto 1 existe, y tiene contenido.");
}

// Confirmamos la existencia del objeto 2, y también es verdadera.
if (obj2) {
  console.log("El objeto 2 también existe, pero está vacio.")
}

La ejecución del código anterior producirá la siguiente salida:

[LOG]: "El objeto 1 existe, y tiene contenido." 

[LOG]: "El objeto 2 también existe, pero está vacio." 

Pero lo que necesitamos es comprobar si un objeto está o no vacio. La siguiente función te podrá ayudar, incluso sin saber si el "objeto" a evaluar es realmente un objeto, porque lo que necesitas saber es:

  1. Si es un objeto.
  2. Si tiene valor.

/**
 * Confirma si un objeto existe y tiene valor.
 * @param obj Objeto a evaluar. Puede ser cualquier tipo.
 * @returns Retorna true si el objeto existe y no está vacio, false todo lo contrario.
 */
function isObject(obj) {
    if (obj == undefined || !obj) {
        return false;
    }
    try {
        if (Object.keys(obj).length) {
            return true;
        }
        else {
            return false;
        }
    }
    catch (error) {
        return false;
    }
}

sábado, 30 de enero de 2021

Javascript: Convertir un número a formato de miles separado por coma.

Función Javascript para convertir un número a un string con formato de división de miles separado por coma.

/**
* Convierte un número a número de tipo string de división de miles separado por coma.
* @param {number} num Número que se desea convertir.
* @param {number} decimal_places Cantidad de decimales (default=2).
* @returns {string}
*/
function intcomma(num, decimal_places=2) {
try {
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
} catch (error) {
return num;
}
}