JavaScript: verificando se um objeto não tiver propriedades ou se um mapa/matriz associativa estiver vazia [duplicata

StackOverflow https://stackoverflow.com/questions/3426979

Pergunta

Possível duplicata:
Como faço para testar um objeto JavaScript vazio da JSON?

Existe uma maneira fácil de verificar se um objeto não tem propriedades, no JavaScript? Ou, em outras palavras, uma maneira fácil de verificar se uma matriz de mapa/associativa está vazia? Por exemplo, digamos que você tenha o seguinte:

var nothingHere = {};
var somethingHere = {foo: "bar"};

Existe uma maneira fácil de dizer qual está "vazio"? A única coisa que consigo pensar é algo assim:

function isEmpty(map) {
   var empty = true;

   for(var key in map) {
      empty = false;
      break;
   }

   return empty;
}

Existe uma maneira melhor (como uma propriedade/função nativa ou algo assim)?

Foi útil?

Solução

Experimente isso:

function isEmpty(map) {
   for(var key in map) {
     if (map.hasOwnProperty(key)) {
        return false;
     }
   }
   return true;
}

Sua solução também funciona, mas apenas se não houver biblioteca estendendo o Object protótipo. Pode ou não ser bom o suficiente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top