Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) quantidade de objetos em uma variavel


Erick Veras

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

Bem assim existe 2 modos ... simples ... existe alguns funções mas para mim nunca funfo =(

No FF existe uma váriave mágica que conta isso, porém como eu disse só funciona no FF ...

alert(SeuObjeto.__count__);
Já para usar no IE e ademais você pode fazer uma função propria tipo:
var count = 0;
for (k in SeuObjeto) if (SeuObjeto.hasOwnProperty(k)) count++;
alert(count);

Link para o comentário
Compartilhar em outros sites

  • 0

Olha cara, posso estar bem errado, mas até onde sei uma variavel só pode instanciar apenas 1 objeto... Mas se sua pergunta for saber as propriedades e metodos que um objeto tem, acho que isso aki resolve:

function countObjs(objs) {
 var qt = 0;
  for(i in objs) {
    qt++;
  }
 return qt;
}
Olha, vamos a uma rapida esplicacao. Quase todos que postaram aki, postaram algo utilizando o for...in e por que? O for já é conhecido, mas o in, entre outras funcionalidades que tu pode ver aqui, quando utilizado com o for, serve para iterar sobre arrays, objetos entre outras colecoes. No coigo acima, eu estou recebendo como parametro uma variavel/objeto que tem seus devidos atributos. Crio então um contador "qt" e inicio ele como 0. Depois uso o for para iterar dentro do objeto "objs" recebido por parametro. Perceba que i não recebe todos os atributos de objs de uma unica vez, ele recebe um por vez, a cada loop. Entrando pelo loop, eu incremento a variavel qt, e quando não existe mais atributos no objeto, o loop encerra e é retornado qt. So lembrando o code do nosso colega SK15:
var count = 0;
for (k in SeuObjeto) if (SeuObjeto.hasOwnProperty(k)) count++;
alert(count);
Mesma coisa que o codigo que eu mostrei, com apenas uma unica diferenca: um teste de condicao if, testando o retorno da funcao hasOwnProperty(). Para saber mais sobre essa funcao, podes ver aqui, mas vou dar uma rapida esclarecida. Essa funcao testa se existe o atributo "k" passado como parametro, no objeto SeuObjeto. So um detalhe, o operador "in", quando usado com for, passa uma string para a variavel usada como chave (eu usei como chave a variavel i e o SK15 usou o k). Se existir esse atributo, ele retorna true senao retorna false. é uma seguranca a mais utilizar essa funcao, mas não a utilizei porque não vejo necessidade sendo que se esta sendo iterado pelo in, obciamente existe ^^ Alguma duvida? Qualquer coisa so postar aqui. Segue abaixo um codigo de exemplo:
function countObjs(objs) {
 var qt = 0;
  for(i in objs) {
    alert(typeof(i));
    qt++;
  }
 return qt;
}
    function objeto(){
    this.a = "danilo";
    this.b = "eu";
    this.mostra = function(){
    alert(this.a);
    }
    }

var teste = new objeto();
alert(countObjs(teste));//retorna 3, já que criei 3 atributos: a, b e mostra.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...