Mam taki kod.
var key = "anything";
var object = {
key: "key attribute"
};
Chcę wiedzieć, czy istnieje sposób na zastąpienie tego wyrażeniem key
„cokolwiek”.
lubić
var object = {
"anything": "key attribute"
};
javascript
Gordian Yuan
źródło
źródło
Tak. Możesz użyć:
var key = "anything"; var json = { }; json[key] = "key attribute";
Lub po prostu użyj drugiej metody, jeśli masz pod ręką wartości podczas pisania programu.
źródło
We współczesnym Javascript (ECMAScript 6) zmienną można zaokrąglić w nawiasach kwadratowych:
var key = "anything"; var json = { [key]: "key attribute" };
źródło
To powinno załatwić sprawę:
var key = "anything"; var json = {}; json[key] = "key attribute";
źródło
Rozwiązanie:
var key = "anything"; var json = {}; json[key] = "key attribute";
źródło
Zamknięcia świetnie się do tego sprawdzają.
function keyValue(key){ return function(value){ var object = {}; object[key] = value; return object; } } var key = keyValue(key); key(value);
źródło
Ostatnio potrzebowaliśmy rozwiązania, jak ustawić pliki cookie przekazujące wartości dynamicznego klucza JSON. Korzystając z https://github.com/js-cookie/js-cookie#json , można to łatwo zrobić. Chciał przechowywać każdą wybraną wartość opcji użytkownika w pliku cookie, aby nie został utracony w przypadku wyłączenia karty lub przeglądarki.
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 } ); });
Następnie możesz pobrać każdą wartość klucza cookie przy każdym ładowaniu strony za pomocą
Cookies.getJSON('option_values');
źródło
Cóż, nie ma na to „bezpośredniego” sposobu ...
ale to powinno wystarczyć:
json[key] = json.key; json.key = undefined;
To trochę trudne, ale hej, to działa!
źródło