Tengo un código como este.
var key = "anything";
var object = {
key: "key attribute"
};
Quiero saber si hay una manera de reemplazar eso key
con "cualquier cosa".
me gusta
var object = {
"anything": "key attribute"
};
javascript
Yuan gordiano
fuente
fuente
Si. Puedes usar:
var key = "anything"; var json = { }; json[key] = "key attribute";
O simplemente use su segundo método si tiene los valores a mano al escribir el programa.
fuente
En Javascript moderno (ECMAScript 6) puede rodear la variable con corchetes:
var key = "anything"; var json = { [key]: "key attribute" };
fuente
Esto debería funcionar:
var key = "anything"; var json = {}; json[key] = "key attribute";
fuente
Solución:
var key = "anything"; var json = {}; json[key] = "key attribute";
fuente
Los cierres funcionan muy bien para esto.
function keyValue(key){ return function(value){ var object = {}; object[key] = value; return object; } } var key = keyValue(key); key(value);
fuente
Recientemente se necesitaba una solución para configurar las cookies pasando los valores clave de json dinámicos. Usando https://github.com/js-cookie/js-cookie#json , se puede hacer fácilmente. Quería almacenar cada valor de opción seleccionado del usuario en la cookie, para que no se pierda en caso de que la pestaña o el navegador se apague.
var json = { option_values : {} }; $('option:selected').each(function(index, el) { var option = $(this); var optionText = option.text(); var key = 'option_' + index; json.option_values[key] = optionText; Cookies.set('option_values', json, { expires: 7 } ); });
Luego, puede recuperar cada valor de clave de cookie en cada carga de página usando
Cookies.getJSON('option_values');
fuente
Bueno, no hay una forma "directa" de hacer esto ...
pero esto debería hacerlo:
json[key] = json.key; json.key = undefined;
Es un poco complicado, pero bueno, ¡funciona!
fuente