Print JavaScript Object

1

I have this return in JS, and 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 in another array and I could not handle it, so in that case, print like this:

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>";
  }
}
    
asked by anonymous 25.04.2018 / 13:34

1 answer

3

I think you just have to iterate with for ... in and for planos you have to use 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>
    
25.04.2018 / 13:50