Como faço para testar um objeto JavaScript vazio?


3110

Após uma solicitação AJAX, às vezes meu aplicativo pode retornar um objeto vazio, como:

var a = {};

Como posso verificar se é esse o caso?


7
Você usa o script JSON.js? Ou qualquer outra biblioteca JSON. Em seguida, você pode usar a função JSON.encode () para converter var em string e testá-la.
Thevs 25/03/09

if( Object.entries(a).length > 0){ //do }
Muhammad Shahzad

Respostas:


5426

ECMA 5+ :

// because Object.keys(new Date()).length === 0;
// we have to do some additional check
Object.keys(obj).length === 0 && obj.constructor === Object

Observe, no entanto, que isso cria uma matriz desnecessária (o valor de retorno de keys).

Pré-ECMA 5:

function isEmpty(obj) {
  for(var prop in obj) {
    if(obj.hasOwnProperty(prop)) {
      return false;
    }
  }

  return JSON.stringify(obj) === JSON.stringify({});
}

jQuery :

jQuery.isEmptyObject({}); // true

lodash :

_.isEmpty({}); // true

Sublinhado :

_.isEmpty({}); // true

Hoek

Hoek.deepEqual({}, {}); // true

ExtJS

Ext.Object.isEmpty({}); // true

AngularJS (versão 1)

angular.equals({}, {}); // true

Ramda

R.isEmpty({}); // true

22
Aqui é o teste de desempenho entre jQuery e sublinhado jsperf.com/isempty-vs-isemptyobject/6
Mikhail

20
Object.keys(new Date()).length === 0; então essa resposta pode ser enganosa.
Cjbarth #

6
Em vez de restringir as coisas, você também pode tirar proveito desse fato: (new Date()).constructor === Dateou vice-versa ({}).constructor === Object.
John

2
angular.equals ({}, {});
Jeremy A. West

11
Object.keys()não verifica propriedades não enumeráveis ​​ou símbolos. Você precisa usar Object.getOwnPropertyNames()e em Object.getOwnPropertySymbols()vez disso. Além disso, Object.getPrototypeOf()é a maneira correta de obter o protótipo de um objeto. obj.constructorpode ser facilmente forjado. Exemplo: function Foo() {} Foo.prototype.constructor = Object; (new Foo()).constructor === Object // true.
Jesse

863

Não há maneira fácil de fazer isso. Você terá que fazer um loop sobre as propriedades explicitamente:

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

Se o suporte ao ECMAScript 5 estiver disponível, você poderá usar Object.keys():

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

56
Isso funciona bem, ou mais simplesmente: function isEmpty (objeto) {for (vari no objeto) {return true; } retorna falso; }
Nicholas Kreidberg 24/03/10

36
Verdadeiro e falso não deveriam ser revertidos nessa função?
Namtax 5/05

25
@namtax: no - a função é nomeada isEmpty() , então ele deve retornar falsese ele tem uma propriedade
Christoph

6
objeto vazio estenderá a classe Object padrão, mas se o protótipo do objeto for modificado, sua função simplificada falhará considere: Object.prototype.a = 'hi'; var obj = {}; alerta (obj.a); // gera "oi" isEmpty (obj) // retorna false
venimus

29
Você não deve usar o segundo exemplo, pois é complexidade do tempo O (n) e complexidade do espaço O (n), enquanto o primeiro é O (1).
Brian

572

Para aqueles que têm o mesmo problema, mas usam o jQuery, você pode usar o jQuery.isEmptyObject .


43
EI! Passei algumas horas depurando os problemas do IE 8 apenas para descobrir que era o jQuery.isEmptyObject que estava causando o problema. Retorna true se o objeto estiver vazio.
MFD3000 17/08/11

162
Por que você publica respostas, incluindo jQuery, se a pergunta não é sobre jQuery?
Eru

47
Eu sei que é um comentário antigo, mas pergunto-me a pergunta @ MFD3000, porque o docu diz: retorna verdadeiro, se o objeto estiver vazio (como o nome indica)
Александр Фишер

21
Incluir o jQuery para uma tarefa tão básica não é o que eu chamaria de resposta certa. É verdade que hoje em dia o jQuery é quase onipresente, mas ainda não devemos esquecer que ele é construído em torno de uma linguagem muito capaz.
Pablo Mescher 27/02/2013

54
JS snobbery típico nestes comentários. Todo mundo sabe que uma grande proporção de JavaScript na Web é escrita no jQuery, portanto, é perfeitamente aceitável fornecer uma solução aqui para o jQuery se ele já possui um método interno para testar objetos. É provável que milhares de desenvolvedores que procuram ajuda achem esta resposta útil. Ninguém disse que é a única maneira de fazê-lo. Eu observo como ninguém age tudo elitista sobre o cara que postou uma solução para uso underscore.js...
BadHorsie

276

Esta é a minha solução preferida:

var obj = {};
return Object.keys(obj).length; //returns 0 if empty or an integer > 0 if non-empty

1
Problema de compatibilidade com o IE9 BTW. developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
doublejosh

3
@Jero Franzani: não, não
nikoskip

O comprimento de Object.keys ({}). É 10 vezes mais lento que a opção (for ... in ...) - sugiro evitá-lo como uma maneira de testar se um objeto está vazio.
Davidhadas

10
Object.keys(new Date()).length === 0; então essa resposta pode ser enganosa.
cjbarth

new Date()não é um objeto. nd = new Date(); nd.constructor === Object;resulta em false.
pors

204

Você pode usar o Underscore.js .

_.isEmpty({}); // true

19
Ou você pode usar o lodash está vazio ( lodash.com/docs#isEmpty ), mas como isso difere do uso de uma solução jQuery - você ainda precisa instalar uma biblioteca adicional. Eu acho que uma solução javascript de baunilha é a intenção.
tfmontague

10
É diferente se você deseja usar JS no back-end com Node.js. Poucas pessoas desejam usar o jQuery (uma biblioteca de front-end usada principalmente para manipulações DOM) no back-end.
Nahn 22/09/14

3
O sublinhado @tfmontague é muito comum nos aplicativos de nó, quase tão onipresente quanto o jQ no lado do cliente. Eu já tinha sublinhado necessário, mas não sabia que tinha essa função
rw-nandemo

5
Sublinhado está sendo substituído por lodash. Use isso em vez disso.
demisx

2
Basta ter cuidado com os tipos de data, isEmpty sempre retornar true para Data, ver github.com/jashkenas/underscore/issues/445
mentat

116
if(Object.getOwnPropertyNames(obj).length === 0){
  //is empty
}

consulte http://bencollier.net/2011/04/javascript-is-an-object-empty/


5
Isso inclui propriedades não enumeráveis, caso você se importe.

O Object.getOwnPropertyNames ({}). Length é 10 vezes mais lento que a opção (for ... in ...) - sugiro evitá-lo como uma maneira de testar se um objeto está vazio.
Davidhadas

4
Object.getOwnPropertyNames(new Date()).length === 0; então essa resposta pode ser enganosa.
precisa saber é

80

Que tal usar JSON.stringify? Está quase disponível em todos os navegadores modernos.

function isEmptyObject(obj){
    return JSON.stringify(obj) === '{}';
}

23
return (JSON.stringify (obj) == '{}')
Vic

26
Isso é lento e a velocidade é importante para esse tipo de utilitário. Teste rápido de desempenho aqui: jsperf.com/empty-object-test

1
Esta é uma opção muito lenta - sugiro usar a opção (for ... in) em vez de
davidhadas

2
E isso não funciona para objetos que contêm funções.
Felix Kling

1
Também emitirá um erro se houver uma referência circular no objeto. Portanto, é lento, não confiável e pode gerar erros e interromper todo o resto. Não há razão para usá-lo sempre.
Burak

62

Acabei de encontrar uma situação semelhante. Eu não queria usar JQuery e queria fazer isso usando Javascript puro.

E o que fiz foi usar a seguinte condição e funcionou para mim.

var obj = {};
if(JSON.stringify(obj) === '{}') { //This will check if the object is empty
   //Code here..
}

Para não igual a, use o seguinte: JSON.stringify(obj) !== '{}'

Confira este JSFiddle


4
Falha em objetos com referências circulares, já que o JSON.stringify lança especificamente uma exceção para eles.
Pedro Montoto García

1
@ PedroMontotoGarcía Ok e como um objeto vazio terá uma referência circular?
KthProg

8
Se o objeto não estiver vazio (e deve funcionar para eles também).
Pedro Montoto García 29/01

Parece que isso já foi mencionado por @Ateszki e é uma das maneiras mais lentas de verificar se um objeto não está vazio.
precisa

Ah sim ... eu senti falta disso. Eu me deparei com uma situação em que queria obter esse javascript e, depois de pensar um pouco, descobri dessa maneira. @ Ateszki, até eu pensei do jeito que você fez. :-) Btw, havia muitas respostas sobre isso, então eu perdi sua resposta.
Anish Nair

60

Pergunta antiga, mas só tinha o problema. Incluir JQuery não é realmente uma boa idéia se seu único objetivo é verificar se o objeto não está vazio. Em vez disso, entre no código do JQuery e você obterá a resposta:

function isEmptyObject(obj) {
    var name;
    for (name in obj) {
        if (obj.hasOwnProperty(name)) {
            return false;
        }
    }
    return true;
}

5
Isso é útil apenas se algum outro processo não tiver adicionado um protótipo ao seu objeto base. Para tornar isso realmente viável, você precisa testar obj.hasOwnProperty (name)
mpemburn

1
Isso não acrescenta nada para a resposta de Christoph a partir de 2009.
Dan Dascalescu

39

Existe uma maneira simples se você estiver em um navegador mais recente. Object.keys(obj).length == 0


1
De onde vem a keyspropriedade?

2
É um método padrão no ECMAScript 5.1
download de

1
Como o comentário acima pode ter 4 votos positivos? Sim, Object.keysé um método padrão, mas os objetos não possuem uma propriedade de chaves. Portanto, esse código reportará qualquer objeto como vazio, exceto que acidentalmente possui uma propriedade nomeada keycom um valor que novamente como uma propriedade nomeada lengthque não é zero. Horrível!
Scravy

Object.keys(new Date()).length === 0; então essa resposta pode ser enganosa.
cjbarth

11
@scravy Object é a classe Object. O objeto possui um método estático chamado 'keys', que aceita um objeto como argumento. Este método retorna uma matriz de cadeias onde as cadeias são nomes de propriedades. developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…
Sgnl

34

atuação

Hoje 2020.01.17 realizo testes no MacOs HighSierra 10.13.6 no Chrome v79.0, Safari v13.0.4 e Firefox v72.0, para soluções escolhidas.

Conclusões

  • soluções baseadas em for-in(A, J, L, M) são mais rápidas
  • soluções baseadas em JSON.stringify(B, K) são lentas
  • surpreendentemente também a solução baseada em Object(N) é lenta

insira a descrição da imagem aqui

Detalhes

Abaixo no snippet são apresentadas 15 soluções. Se você deseja executar o teste de desempenho em sua máquina, clique AQUI .

insira a descrição da imagem aqui


muito disso não faz sentido, porque você está baseando tudo em um retorno de falso e ou verdadeiro. Às vezes, a programação precisa de uma instrução if ou de um operador ternário. just fyi
Christian Matthew

1
É a melhor resposta, obrigado. A primeira solução funciona como um encanto.
Carlos Jesus Arancibia Taborga

33

O uso de Object.keys (obj) .length (como sugerido acima para ECMA 5+) é 10 vezes mais lento para objetos vazios! continue com a opção old school (for ... in).

Testado no Node, Chrome, Firefox e IE 9, fica evidente que, na maioria dos casos de uso:

  • (para ... em ...) é a opção mais rápida de usar!
  • Object.keys (obj) .length é 10 vezes mais lento para objetos vazios
  • JSON.stringify (obj) .length é sempre o mais lento (não surpreendente)
  • Object.getOwnPropertyNames (obj) .length demora mais que Object.keys (obj) .length pode demorar muito mais em alguns sistemas.

Em termos de desempenho, use:

function isEmpty(obj) { 
   for (var x in obj) { return false; }
   return true;
}

ou

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

Veja resultados detalhados e código de teste em O objeto está vazio?


Object.keysé lento, mas menos código. Em uma página pequena, onde isso é chamado ... talvez 10 vezes ... Isso ainda será mais lento, considerando o tempo de análise adicional do código adicional?
yankee

32

Você pode verificar a contagem das chaves do objeto:

if (Object.keys(a).length > 0) {
    // not empty
}

8
Por que você adicionaria um comentário para uma resposta que já foi dada e forneceria uma resposta pior? stackoverflow.com/a/32108184/4229159 e é o 1º resposta de abril
Alejandro Vales

Como se eu tivesse um objeto muito grande e fizesse isso em cada loop apenas para ver se o objeto estava vazio?
StefansArya

27
  1. Apenas uma solução alternativa. Seu servidor pode gerar alguma propriedade especial no caso de não haver dados?

    Por exemplo:

    var a = {empty:true};

    Em seguida, você pode verificá-lo facilmente no seu código de retorno de chamada AJAX.

  2. Outra maneira de verificar isso:

    if (a.toSource() === "({})")  // then 'a' is empty

EDIT : Se você usar qualquer biblioteca JSON (fe JSON.js), poderá tentar a função JSON.encode () e testar o resultado em relação à cadeia de valor vazia.


6
toSource()é não-padrão e não funciona no IE ou Opera (e potencialmente outros navegadores eu não verificar)
Christoph

4
@Thevs: talvez você tenha uma cópia diferente da versão atual do ECMA-262, mas a minha não lista uma toSourcepropriedade na seção 15.2.4; de acordo com o MDC, foi introduzido no JS1.3 (ou seja, Netscape Navigator 4.06), mas NÃO está no ECMA-262, 3ª edição!
Christoph

4
@Thevs: bem, pelo menos dois fornecedores importantes de navegadores não o implementaram, por isso não é um padrão de fato, e como não está no ECMA-262, também não é real ...
Christoph

4
Mesmo quando funciona, toSource()é uma maneira horrível de fazer isso (como está JSON.encode()). Ele precisa criar uma string que represente todo o objeto para verificar se está vazio. Existe a sobrecarga de converter coisas em seqüências de caracteres, mas além disso, será necessário converter um milhão de coisas se o seu objeto tiver um milhão de propriedades, enquanto apenas a observação de uma delas permitirá que você saiba que ela não está vazia.
Jasper

4
@ Parece que a sobrecarga é maior, mesmo que possa ser (não tenho certeza de que esteja em todas as circunstâncias) na mesma ordem de magnitude. No entanto, essa resposta envolve retornar false, logo que uma propriedade diferente é encontrado o que torna a história é diferente todos juntos ...
Jasper

25

Eu criei uma função completa para determinar se o objeto está vazio.

Ele usa Object.keysda funcionalidade ECMAScript 5 (ES5), se possível, para obter o melhor desempenho (consulte a tabela de compatibilidade ) e fallbacks para a abordagem mais compatível para mecanismos mais antigos (navegadores).

Solução

/**
 * Returns true if specified object has no properties,
 * false otherwise.
 *
 * @param {object} object
 * @returns {boolean}
 */
function isObjectEmpty(object)
{
    if ('object' !== typeof object) {
        throw new Error('Object must be specified.');
    }

    if (null === object) {
        return true;
    }

    if ('undefined' !== Object.keys) {
        // Using ECMAScript 5 feature.
        return (0 === Object.keys(object).length);
    } else {
        // Using legacy compatibility mode.
        for (var key in object) {
            if (object.hasOwnProperty(key)) {
                return false;
            }
        }
        return true;
    }
}

Aqui está a essência deste código.

E aqui está o JSFiddle com demonstração e um teste simples.

Espero que ajude alguém. Felicidades!


3
Isso falha para um nullobjeto.

Olá @torazaburo! Obrigado por prestar atenção! Atualizei todas as fontes com a implementação correta.
Slava Fomin II

1
O comprimento de Object.keys ({}). É 10 vezes mais lento que a opção (for ... in ...) - sugiro evitá-lo como uma maneira de testar se um objeto está vazio.
Davidhadas

1
Object.keys(new Date()).length === 0; então essa resposta pode ser enganosa.
Cjbarth #

19

Eu estou usando isso.

function isObjectEmpty(object) {
  var isEmpty = true;
  for (keys in object) {
     isEmpty = false;
     break; // exiting since we found that the object is not empty
  }
  return isEmpty;
}

Por exemplo:

var myObject = {}; // Object is empty
var isEmpty  = isObjectEmpty(myObject); // will return true;

// populating the object
myObject = {"name":"John Smith","Address":"Kochi, Kerala"}; 

// check if the object is empty
isEmpty  = isObjectEmpty(myObject); // will return false;

daqui

Atualizar

OU

você pode usar a implementação jQuery de isEmptyObject

function isEmptyObject(obj) {
  var name;
  for (name in obj) {
    return false;
  }
  return true;
}

Oi. quando você testa essa função com número ou retorno booleano verdadeiro ou falso verdadeiro e isso não é o resultado correto. isObjectEmpty (true). isObjectEmpty (false). isObjectEmpty (1)
iman

2
Estamos verificando se o objeto está vazio, não se o tipo de dados é um objeto. No seu caso para verificar se o seu objecto é preciso algo como if (typeof uma === "objeto") {...}
kiranvj

15

O exemplo a seguir mostra como testar se um objeto JavaScript está vazio, se por vazio significa que não temos propriedades próprias.

O script funciona no ES6.

const isEmpty = (obj) => {
    if (obj === null ||
        obj === undefined ||
        Array.isArray(obj) ||
        typeof obj !== 'object'
    ) {
        return true;
    }
    return Object.getOwnPropertyNames(obj).length === 0;
};
console.clear();
console.log('-----');
console.log(isEmpty(''));           // true
console.log(isEmpty(33));           // true
console.log(isEmpty([]));           // true
console.log(isEmpty({}));           // true
console.log(isEmpty({ length: 0, custom_property: [] })); // false
console.log('-----');
console.log(isEmpty('Hello'));      // true
console.log(isEmpty([1, 2, 3]));    // true
console.log(isEmpty({ test: 1 }));  // false
console.log(isEmpty({ length: 3, custom_property: [1, 2, 3] })); // false
console.log('-----');
console.log(isEmpty(new Date()));   // true
console.log(isEmpty(Infinity));     // true
console.log(isEmpty(null));         // true
console.log(isEmpty(undefined));    // true


15

De acordo com a ES2017 especificação sobre Object.entries () , a verificação é simples de usar qualquer browser-- moderna

Object.entries({}).length === 0

3
Existe algum benefício em usar isso sobre Object.keysou Object.values?
Faintsignal

@faintsignal usando esses está perfeitamente bem. Acabei de adicionar entradas porque não as encontrei nos comentários.
Vikrant

13
function isEmpty(obj) {
  for(var i in obj) { return false; }
  return true;
}

4
Isso também será verdadeiro quando, por exemplo, uma biblioteca JavaScript se estender Objectcom um método através da cadeia de protótipos, porque isso é enumerável e a for ininstrução faz um loop através de propriedades enumeráveis.
Viam0Zah


12

Gostaria de verificar se tem pelo menos uma chave. Seria o suficiente para me dizer que não está vazio.

typeof obj !== "undefined" && Boolean(Object.keys(obj)[0])

1
e se a primeira chave retornar falsevalor? o resultado será falseincorreto.
Jimmy Obonyo Abor

Eu testei para isso. Você pode dar um exemplo de trabalho?
Tudor Morar

1
este é curto e conciso, mas irá resultar em erro de execução se o objeto é indefinido
Mrinmoy

11

Sob o capô, todos os métodos de verificação vazia em todas as bibliotecas usam a lógica de verificação de chaves de objetos. É uma maneira estranha de torná-lo compreensível, que você pode colocar em um método, descrito aqui .

for(key in obj){
   //your work here.
 break;
}

Que evoluiu no ES5 , agora você pode simplesmente verificar o comprimento das chaves do objeto, usando o Object.Keysmétodo que leva seu objeto como parâmetro:

if(Object.keys(obj).length > 0){
 //do your work here
}

Ou se você estiver usando o Lodash (você deve estar) então.

 _.isEmpty(obj) //==true or false

Enquanto está correto, é uma maneira estranha de fazer uma declaração if - provavelmente confundirá alguém que manterá o código depois de você.
Soren

10


você pode usar esse código simples que não usou jQuery ou outras bibliotecas

var a=({});

//check is an empty object
if(JSON.stringify(a)=='{}') {
    alert('it is empty');
} else {
    alert('it is not empty');
}

A classe JSON e suas funções ( análise e stringify ) são muito úteis, mas tem alguns problemas com o IE7 que podem ser corrigidos com este código simples http://www.json.org/js.html .

Outra maneira simples (maneira mais simples):
você pode usar dessa maneira sem usar o objeto jQuery ou JSON .

var a=({});

function isEmptyObject(obj) {
    if(typeof obj!='object') {
        //it is not object, so is not empty
        return false;
    } else {
        var x,i=0;
        for(x in obj) {
            i++;
        }
        if(i>0) {
            //this object has some properties or methods
            return false;
        } else {
            //this object has not any property or method
            return true;
        }
    }
}

alert(isEmptyObject(a));    //true is alerted

JSON.stringifyA solução falhará se o objeto contiver propriedades não stringificáveis, como funções ou "indefinido", embora seja um caso extremo.

10

Melhor maneira que eu encontrei:

function isEmpty(obj)
{
    if (!obj)
    {
        return true;
    }

    if (!(typeof(obj) === 'number') && !Object.keys(obj).length)
    {
        return true;
    }

    return false;
}

Trabalha para:

    t1: {} -> true
    t2: {0:1} -: false
    t3: [] -> true
    t4: [2] -> false
    t5: null -> true
    t6: undefined -> true
    t7: "" -> true
    t8: "a" -> false
    t9: 0 -> true
    t10: 1 -> false

3
Eu diria que 0 não está vazio, pois na verdade é um número. tudo o resto parece bom, mas a correção é fácil. na primeira instrução if adicione isso. if (!obj && obj !== 0).
Mjwrazor #

9

Minha vez:

function isEmpty(obj) {
    return !Object.keys(obj).length > 0;
}

var a = {a:1, b:2}
var b = {}

console.log(isEmpty(a)); // false
console.log(isEmpty(b)); // true

Acho que nem todos os navegadores implementam Object.keys()atualmente.


2
Object.keys(new Date()).length === 0; então essa resposta pode ser enganosa.
cjbarth

3
Depende se você considera uma data sempre "cheia", apesar de nunca expor as chaves. Mas concordo que, se esse for o seu plano, adicionar uma instância suplementar de verificação para o construtor Date é uma boa opção.
NiKo 20/03/16

9

Se o jQuery e o navegador da web não estiverem disponíveis, também haverá uma função isEmpty no underscore.js.

_.isEmpty({}) // returns true

Além disso, ele não assume que o parâmetro de entrada seja um objeto. Para uma lista ou sequência ou indefinida, ela também girará a resposta correta.



7

Embargo! Cuidado com as limitações do JSON.

javascript:
  obj={  f:function(){}  };
  alert( "Beware!! obj is NOT empty!\n\nobj = {  f:function(){}  }" + 
               "\n\nJSON.stringify( obj )\n\nreturns\n\n" +
                        JSON.stringify( obj ) );

exibe

    Cuidado !! obj NÃO está vazio!

    obj = {f: function () {}}

    JSON.stringify (obj)

    retorna

    {}

7

A resposta correta é:

const isEmptyObject = obj =>
  Object.getOwnPropertyNames(obj).length === 0 &&
  Object.getOwnPropertySymbols(obj).length === 0 &&
  Object.getPrototypeOf(obj) === Object.prototype;

Isso verifica se:

  • O objeto não possui propriedades próprias (independentemente da enumerabilidade).
  • O objeto não possui símbolos de propriedade próprios.
  • O protótipo do objeto é exatamente Object.prototype.

Em outras palavras, o objeto é indistinguível de um criado com {}.


6

Além da resposta de Thevs:

var o = {};
alert($.toJSON(o)=='{}'); // true

var o = {a:1};
alert($.toJSON(o)=='{}'); // false

é jquery + jquery.json


Não gosto de usar JSON porque ele não pode funcionar com estruturas de objetos circulares.
precisa saber é o seguinte

2
Se sua página carrega o jQuery, use-o $.isEmptyObject(), não perca ciclos com conversões não óbvias.
Skierpage

6

O Sugar.JS fornece objetos estendidos para esse fim. O código é limpo e simples:

Faça um objeto estendido:

a = Object.extended({})

Verifique o tamanho:

a.size()
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.