How to print the prefixes along with the array?

0

I would like help with printing an array with its prefixes.

this.prefixo = [
        {
            "E01":[{"name":"Teste01"}],
            "E02":[{"name":"Teste02"}]
        }
    ];

I would like to print the prefixes and names related to each prefix.

    
asked by anonymous 13.04.2016 / 20:53

1 answer

1

Look, this is an array with an object inside: [ { } ] . There's nothing left in this array, but I'll assume you can have other objects with the same schema. And this object has keys (like E01 ) that point to other arrays, each with another object inside, which has the name and value. You'll need to use nested loops / loops to get all of this:

this.prefixo = [
        {
            "E01":[{"name":"Teste01"}],
            "E02":[{"name":"Teste02"}]
        }
    ];


// Variáveis para organizar o código
var i, j, chave, objetoExterno, objetoInterno, arrayInterna

// Para cada item na array mais externa
for(i=0; i<this.prefixo.length; i++) {
  

  // o objetoExterno é o que contém as chaves;
  // no exemplo só tem 1, mas como é um array deles,
  // pode haver mais
  objetoExterno = this.prefixo[i];
  
  
  // Vamos ver quais são as chaves desse objeto
  // e o que elas contêm
  for(chave in objetoExterno) {
    
    // Cada chave do objeto contém uma array
    arrayInterna = objetoExterno[chave];
    
    // Pode haver vários itens dentro de cada array
    for(j=0; j<arrayInterna.length; j++) {
        
      
      // Cada item dessa array é um objeto que contém um nome
      objetoInterno = arrayInterna[j];
      
      imprime('Encontrado o nome ' + objetoInterno.name + ' na chave ' + chave);
      
    }
    
  }
  
}


// Imprime na janela de "resultado" do exemplo
function imprime(txt) {  
  document.body.innerHTML += txt + '<br>'; 
}

With these data, arrays are unnecessary. If the data were like this:

this.prefixo = {
  "E01":"Teste01",
  "E02":"Teste02"
};

You could easily access each name by the prefix:

alert(this.prefixo.E01);
    
13.04.2016 / 22:04