У меня такой код.
var key = "anything";
var object = {
key: "key attribute"
};
Я хочу знать, есть ли способ заменить это key
на «что угодно».
нравиться
var object = {
"anything": "key attribute"
};
javascript
Гордиан Юань
источник
источник
Да. Вы можете использовать:
var key = "anything"; var json = { }; json[key] = "key attribute";
Или просто используйте второй метод, если у вас есть значения под рукой при написании программы.
источник
В современном Javascript (ECMAScript 6) вы можете заключить переменную в квадратные скобки:
var key = "anything"; var json = { [key]: "key attribute" };
источник
Это должно помочь:
var key = "anything"; var json = {}; json[key] = "key attribute";
источник
Решение:
var key = "anything"; var json = {}; json[key] = "key attribute";
источник
Замыкания отлично подходят для этого.
function keyValue(key){ return function(value){ var object = {}; object[key] = value; return object; } } var key = keyValue(key); key(value);
источник
Недавно потребовалось решение, как настроить файлы cookie, передающие динамические значения ключей json. Используя https://github.com/js-cookie/js-cookie#json , это можно легко сделать. Хотел сохранить каждое выбранное значение параметра пользователя в cookie, чтобы оно не потерялось в случае закрытия вкладки или браузера.
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 } ); });
Затем вы можете получить значение каждого ключа cookie при каждой загрузке страницы, используя
Cookies.getJSON('option_values');
источник
Что ж, "прямого" способа сделать это ...
но это должно сработать:
json[key] = json.key; json.key = undefined;
Это немного сложно, но это работает!
источник