recorrer objetos objeto metodos literales eliminar elemento crear buscar array agregar javascript

objetos - ¿Hay alguna manera de usar claves variables en un objeto JavaScript literal?



recorrer array de objetos javascript (8)

Tengo un código como este.

var key = "anything"; var object = { key: "key attribute" };

Quiero saber si hay una manera de reemplazar esa key con "cualquier cosa".

me gusta

var object = { "anything": "key attribute" };


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!


En ES6, use nombres de propiedad calculados .

const key = "anything"; const object = { [key]: "key attribute" // ^^^^^ COMPUTED PROPERTY NAME };

Tenga en cuenta los corchetes alrededor de la key . En realidad, puede especificar cualquier expresión entre corchetes, no solo una variable.


En Javascript moderno (ECMAScript 6) puede rodear la variable con corchetes:

var key = "anything"; var json = { [key]: "key attribute" };


Esto debería funcionar:

var key = "anything"; var json = {}; json[key] = "key attribute";


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);


Recientemente necesitaba una solución sobre cómo configurar las cookies pasando los valores dinámicos de la clave json. Usando el 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 una cookie, para que no se pierda en caso de que la pestaña o el navegador se apaguen.

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'');


Sí. Puedes usar:

var key = "anything"; var json = { }; json[key] = "key attribute";

O simplemente use su segundo método si tiene los valores a mano cuando escribe el programa.


Solución:

var key = "anything"; var json = {}; json[key] = "key attribute";