1

I want to add values ​​to my javascript object dynamically, this is what is doing

var data = {"clave1":"valor1","clave2":"valor2"};
var options = {"data":{}};
$.each(data,function(c,v){
options.data.{c} = v;
});

What I want is that options are so

options = {"data":{"clave1":"valor1",...}};
Cœur
  • 37,241
  • 25
  • 195
  • 267
Lenin
  • 13
  • 3

2 Answers2

1

In JS, you need to use brackets to add key-value pairs

var data = {
  "clave1": "valor1",
  "clave2": "valor2"
};
var options = {
  "data": {}
};
$.each(data, function(c, v) {
  options.data[c] = v;
});

console.log(options)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

You don't need jQuery for doing this, you can use the function Object.keys and then loop using the function forEach:

var data = {
  "clave1": "valor1",
  "clave2": "valor2"
};
var options = {
  "data": {}
};

Object.keys(data).forEach(k => options.data[k] = data[k])

console.log(options)

And finally, using the function Object.assign

var data = {
  "clave1": "valor1",
  "clave2": "valor2"
};
var options = {
  "data": Object.assign({}, data)
};

console.log(options)
Ele
  • 33,468
  • 7
  • 37
  • 75
0

Appending new values to objects is simple! Objects are really like arrays but can have strings as keys! For example:

var obj = {};
obj["data"] = {};
obj["data"]["clave1"] = "valor1";

So all you would have to do is make sure that you know the name of the parameter! You can also do this:

var str = "clave1";
var str2 = "valor1";
var obj = {};
obj["data"] = {};
obj["data"][str] = str2;
Maxim Khanov
  • 434
  • 2
  • 8