У меня такой код.
var key = "anything";
var object = {
key: "key attribute"
};
Я хочу знать, есть ли способ заменить это keyна «что угодно».
нравиться
var object = {
"anything": "key attribute"
};
У меня такой код.
var key = "anything";
var object = {
key: "key attribute"
};
Я хочу знать, есть ли способ заменить это keyна «что угодно».
нравиться
var object = {
"anything": "key attribute"
};
Ответы:
В ES6 используйте вычисляемые имена свойств .
const key = "anything";
const object = {
[key]: "key attribute"
// ^^^^^ COMPUTED PROPERTY NAME
};
Обратите внимание на квадратные скобки вокруг key. Фактически вы можете указать любое выражение в квадратных скобках, а не только переменную.
Да. Вы можете использовать:
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";
Замыкания отлично подходят для этого.
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');