Print Javascript Object

Asked

Viewed 241 times

1

I have this return in JS, and I would like to print the messages like this:

Email é Obrigatório!
Limite de Testes é obrigatória! 

... and so on. The problem is that in the middle of the return on another array and I could not treat it, for in the cado ai, print so:

Valor é Obrigatório!
Valor é Obrigatório!

I need to print only the messages.

resultado:
email:{_empty: "Email é Obrigatório!"}
limite_teste:{_empty: "Limite de Testes é obrigatória!"}
limite_usuarios:{_empty: "Limite de Usuários é obrigatório!"}
nome:{_empty: "Nome Completo é obrigatório"}
password:{_empty: "Senha é obrigatória!"}
planos:
  Array(2)
   0:_joinData:valor:{_empty: "Valor é Obrigatório!"}
   1:_joinData:valor:{_empty: "Valor é Obrigatório!"}
username:{_empty: "Usuário é obrigatório!"}

[1]: https://i.stack.imgur.com/2PTXi.png

My Code:

var erro = "";
for(var k in mensagem ){
  for(var i in mensagem[k]){
     erro = erro + mensagem[k][i] + "<br>";
  }
}
  • _joinData:valor is a whole key? You can post the correct json?

  • @Guilhermenascimento https://i.stack.Imgur.com/2PTXi.png

1 answer

3


I think it’s enough to iterate like this with for ... in and to the planos have to use a for iterated with increment (i++), example using console.log:

var data = {
    email:{_empty: "Email é Obrigatório!"},
    limite_teste:{_empty: "Limite de Testes é obrigatória!"},
    limite_usuarios:{_empty: "Limite de Usuários é obrigatório!"},
    nome:{_empty: "Nome Completo é obrigatório"},
    password:{_empty: "Senha é obrigatória!"},
    planos: [
       {
           "_joinData": {
                "valor": {_empty: "Valor é Obrigatório!"}
           }
       }, {
           "_joinData": {
                "valor": {_empty: "Valor é Obrigatório!"}
           }
       }
    ],
    username:{_empty: "Usuário é obrigatório!"}
};

for (var k in data) {
    var item = data[k];

    if (k === "planos") {
        for (var i = 0, j = item.length; i < j; i++) {
           console.log(item[i]._joinData.valor._empty);
        }
    } else {
       console.log(item._empty);
    }
}

Saving everything in the error variable:

var erro = '', erros = [];

var data = {
    email:{_empty: "Email é Obrigatório!"},
    limite_teste:{_empty: "Limite de Testes é obrigatória!"},
    limite_usuarios:{_empty: "Limite de Usuários é obrigatório!"},
    nome:{_empty: "Nome Completo é obrigatório"},
    password:{_empty: "Senha é obrigatória!"},
    planos: [
       {
           "_joinData": {
                "valor": {_empty: "Valor é Obrigatório!"}
           }
       }, {
           "_joinData": {
                "valor": {_empty: "Valor é Obrigatório!"}
           }
       }
    ],
    username:{_empty: "Usuário é obrigatório!"}
};

for (var k in data) {
    var item = data[k];

    if (k === "planos") {
        for (var i = 0, j = item.length; i < j; i++) {
           erros.push( item[i]._joinData.valor._empty );
        }
    } else {
       erros.push( item._empty );
    }
}

erro = erros.join('<br>');

document.getElementById("erros").innerHTML = erro;
<div id="erros"></div>

  • 1

    That’s right brother, it worked 100%. Thank you!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.