Ich habe solchen Code.
var key = "anything";
var object = {
key: "key attribute"
};
Ich möchte wissen, ob es eine Möglichkeit gibt, dies durch key
"irgendetwas" zu ersetzen .
mögen
var object = {
"anything": "key attribute"
};
javascript
Gordian Yuan
quelle
quelle
Ja. Sie können verwenden:
var key = "anything"; var json = { }; json[key] = "key attribute";
Oder verwenden Sie einfach Ihre zweite Methode, wenn Sie beim Schreiben des Programms die Werte zur Hand haben.
quelle
In modernem Javascript (ECMAScript 6) können Sie die Variable mit eckigen Klammern umgeben:
var key = "anything"; var json = { [key]: "key attribute" };
quelle
Dies sollte den Trick tun:
var key = "anything"; var json = {}; json[key] = "key attribute";
quelle
Lösung:
var key = "anything"; var json = {}; json[key] = "key attribute";
quelle
Verschlüsse eignen sich hervorragend dafür.
function keyValue(key){ return function(value){ var object = {}; object[key] = value; return object; } } var key = keyValue(key); key(value);
quelle
Kürzlich wurde eine Lösung zum Setzen von Cookies benötigt, die die dynamischen JSON-Schlüsselwerte übergeben. Mit https://github.com/js-cookie/js-cookie#json ist dies problemlos möglich. Wollte jeden ausgewählten Optionswert des Benutzers in einem Cookie speichern, damit er beim Herunterfahren der Registerkarte oder des Browsers nicht verloren geht.
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 } ); });
Anschließend können Sie jeden Cookie-Schlüsselwert bei jedem Laden der Seite mit abrufen
Cookies.getJSON('option_values');
quelle
Nun, es gibt keinen "direkten" Weg, dies zu tun ...
aber das sollte es tun:
json[key] = json.key; json.key = undefined;
Es ist ein bisschen schwierig, aber hey, es funktioniert!
quelle