¿Hay una forma mejor de comprobar si un objeto está vacío? estoy usando esto:Objeto JS vacío
function isObjEmpty(obj)
{
for (var p in obj) return false;
return true;
}
¿Hay una forma mejor de comprobar si un objeto está vacío? estoy usando esto:Objeto JS vacío
function isObjEmpty(obj)
{
for (var p in obj) return false;
return true;
}
Si usted está buscando una sola línea, considere Object.keys
:
var isEmpty = !Object.keys(obj).length;
Su método actual es peligroso, ya que siempre devolverá falso cuando tiene Object.prototype
sido extendida: http://jsfiddle.net/Neppc/
+1 Muy buena solución. – Sampson
¡agradable agradable! Gracias. –
sí. tienes razón. Esperando 10 minutos para marcar su respuesta como correcta. no puedo aún gracias robar –
Otra opción está integrado en jQuery: jQuery.isEmptyObject(obj)
Editar: Curiosamente, esa implementación es la misma que su código en la pregunta.
¡Realmente esta es una muy buena manera de verificar si un objeto está vacío! Y es 10 veces más rápido para los objetos exmpty que el uso de Object.keys() como se sugirió anteriormente :)
Sometido a pruebas en Nodo, Cromo, Firefox e IE 9, se hace evidente que para la mayoría de los casos de uso:
rendimiento de la línea de fondo sabia, utilice:
function isEmpty(obj) {
for (var x in obj) { return false; }
return true;
}
o
function isEmpty(obj) {
for (var x in obj) { if (obj.hasOwnProperty(x)) return false; }
return true;
}
Ver resultados de las pruebas detalladas y el código de prueba en Is object empty?
¿Cuáles considera "vacío"? – Niko
Por qué usar [hasOwnProperty] (https://developer.mozilla.org/es/JavaScript/Reference/Global_Objects/Object/HasOwnProperty) => ref: http://jsfiddle.net/v3Lyn/ – Yoshi
Esta pregunta no tiene nada que ver con hacer con JSON. –