Jump to content
pedrotuga

Há algum método que devolve o número de atributos de um objecto?

Recommended Posts

pedrotuga

a pergunta é essa.

a="a,b,v,asd,s,sasd";
elementos = a.split(',');

como é que obtenho o número de elementos? Há alguma forma mais imediata do que fazer um ciclo?

Share this post


Link to post
Share on other sites
pedrotuga

nelems = elementos.length;

Isso não faz o que eu perguntei. Isso devolve o número de caracteres de uma string.

Share this post


Link to post
Share on other sites
pmg

Isso não faz o que eu perguntei. Isso devolve o número de caracteres de uma string.

No meu browser (Iceweasel 2.0.0.16) faz o que tu perguntaste.

Amanhã, experimento no Internet Explorer e no Firefox (o Firefox tem obrigação de ser igual ao Iceweasel).

Hmmm ... a esta hora não consigo interpretar a referência do JavaScript que eu uso

http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Array_Object


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Nazgulled

Tens a certeza? Ao usares o .split() vai ser criado um array com os elementos e o length dá o tamanho do array...

Share this post


Link to post
Share on other sites
djthyrax

javascript:alert("a,b,c,c,dddd".split(",").length)

No firefox devolve 5.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
pedrotuga

Ok, as minhas desculpas... eu é que perguntei uma coisa e afixei código que não corresponde propriamente ao que eu perguntei.

Já descobri o problema:

a="a";

a.t=4;

a.q=5;

a.r=6;

document.write(a.length); //<---- imprime 1

Mas no caso que eu afixei acima tambem não quero contar o número de atributos de um objecto, quero sim o número de elementos de um objecto do tipo array que é o que a função split devolve. E aí é de facto como voces estão a dizer.

Eu até não desgosto do javascript enquanto linguagem, mas isto é estúpido, recorrer a um objecto que não é uma estrutura base da linguagem para coisas tão simples não é propriamente um desenho muito rigoroso.

Share this post


Link to post
Share on other sites
Njay

Acho que o teu problema é o problema. Nunca vi ninguém precisar de contar o número de atributos de um objecto. Depois dizes que queres contar o nº de elementos retornados da função split, mas a resposta para isso já tens: ela retorna um array e o nº de elementos de um array é dado pelo atributo length (qualquer array)... que queres tu fazer afinal?


Blog: Tróniquices ~ Projecto: EmbeddedDreams.com

Share this post


Link to post
Share on other sites
pmg
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>test properties</title>
  <script type="text/javascript">
  function test_properties() {
    var exemplo = new Object();
    exemplo.t = 2;
    exemplo.r = 3;
    exemplo.s = 5;
    exemplo.value = 1234567;
    exemplo.text = "12345678901";

    var k = 0;
    for (property in exemplo) ++k;

    var result = "";
    result += ' Properties: ' + k + '\n';
    result += '     length: ' + exemplo.length + '\n';
    result += 'text.length: ' + exemplo.text.length + '\n';
    return result;
  }
  </script>
</head>
<body onload="document.getElementById('result').innerHTML = test_properties()">
  <pre id="result"></pre>
</body>
</html>


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
pedrotuga

Acho que o teu problema é o problema. Nunca vi ninguém precisar de contar o número de atributos de um objecto. Depois dizes que queres contar o nº de elementos retornados da função split, mas a resposta para isso já tens: ela retorna um array e o nº de elementos de um array é dado pelo atributo length (qualquer array)... que queres tu fazer afinal?

Lê o tópico SFF.

pmg, pois, foi essa a conclusão a que eu já tinha chegado e que referi no último post.

Share this post


Link to post
Share on other sites
Njay
Lê o tópico SFF.

O código do pmg conta o número de atributos de um objecto, que é o que dizes que não queres fazer :

tambem não quero contar o número de atributos de um objecto

Dizes que

quero sim o número de elementos de um objecto do tipo array

e essa resposta já tens... continuo sem perceber o que é que pretendes ou onde é que queres chegar, explica-me lá SFF como se eu fosse(?) muito burro...


Blog: Tróniquices ~ Projecto: EmbeddedDreams.com

Share this post


Link to post
Share on other sites
pedrotuga

Não sei como explicar melhor, não leste foi com atenção os meus posts neste tópico.

Eu referi desde o primeiro post que havia a solução do ciclo, estava apenas a perguntar se existe algum método que devolve o número de atributos de um objecto. Pelos vistos não há, mas afinal de contas tambem não é preciso para mim neste caso pois a função split afinal de contas não devolve um objecto genérico com vários atributos mas sim um objecto do tipo array com vários elementos.

e essa resposta já tens... continuo sem perceber o que é que pretendes ou onde é que queres chegar, explica-me lá SFF como se eu fosse(?) muito burro...

Eu já disse no meu segundo post que a resposta dada inicialmente é de facto a o que afinal de contas preciso e até já pedi desculpas pela imprecisão no post de abertura. Não sei como ser mais claro.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.