Add inside a new position array in javascript

Asked

Viewed 76 times

1

var produtos = new Array();

produtos = [{"Id":2,"Nome":"X bacon","Valor":12,"Quantidade":1},{"Id":3,"Nome":"Lucas","Valor":9.97,"Quantidade":1},{"Id":4,"Nome":"teste","Valor":5,"Quantidade":1}]

I am sending to Controlle and returning a date, with new attributes

produtos = [{"Id":2,"Nome":"X bacon","Valor":12,"Quantidade":1, "Imagem": xxxx, "Descricao": yyy},{"Id":3,"Nome":"Lucas","Valor":9.97,"Quantidade":1 "Imagem": xxxx, "Descricao": yyy},},{"Id":4,"Nome":"teste","Valor":5,"Quantidade":1 "Imagem": xxxx, "Descricao": yyy},}]

only when I get my date all attributes are minuscule,

Id -> id...

how do I take only the image and description of the date and concatenate into the product. tried that:

$(data).each(function (i) {
                produtos[i] = produtos.concat(data[i].imagem);

});

date: http://prntscr.com/mci2na

products: http://prntscr.com/mci3sl

1 answer

2


This is a Javascript object and not simply an array.

If I understand correctly you want to add the Image and Description elements without changing the capitalization of the attributes.

Try the following on pure JS:

produtos = [
  {"Id":2,"Nome":"X bacon","Valor": 12,"Quantidade":1},
  {"Id":3,"Nome":"Lucas","Valor":9.97,"Quantidade":1},
  {"Id":4,"Nome":"teste","Valor":5,"Quantidade":1}
];

produtos.forEach(function (produto) { 
    produto["Imagem"] = "imagem.jpg";
    produto["Descricao"] = "Descricao do produto";
});

// Debugging only
document.write(JSON.stringify(produtos));

Link to the Jsfiddle: https://jsfiddle.net/86kan9xp/7/

  • Thanks "La Flame", can solve following your logic I did this: Success: Function (date) { products.foreach(Function (product, i) { product["Image"] = date[i].image; product["Description"] = date[i].Description; }); setcookie(); },

Browser other questions tagged

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