I have code like this.
var key = \"anything\";
var object = {
key: \"key attribute\"
};
I want to know if there is a way to rep
On modern Javascript (ECMAScript 6) you can sorround the variable with square brackets:
var key = "anything";
var json = {
[key]: "key attribute"
};
In ES6, use computed property names.
const key = "anything";
const object = {
[key]: "key attribute"
// ^^^^^ COMPUTED PROPERTY NAME
};
Note the square brackets around key
. You can actually specify any expression in the square brackets, not just a variable.
Solution:
var key = "anything";
var json = {};
json[key] = "key attribute";
Yes. You can use:
var key = "anything";
var json = { };
json[key] = "key attribute";
Or simply use your second method if you have the values at hand when writing the program.
Closures work great for this.
function keyValue(key){
return function(value){
var object = {};
object[key] = value;
return object;
}
}
var key = keyValue(key);
key(value);
This should do the trick:
var key = "anything";
var json = {};
json[key] = "key attribute";