有没有办法在JavaScript对象文字中使用variables键?
我有这样的代码。
var key = "anything"; var object = { key: "key attribute" };
我想知道是否有办法用“任何东西”replace这个key
。
喜欢
var object = { "anything": "key attribute" };
是。 您可以使用:
var key = "anything"; var json = { }; json[key] = "key attribute";
或者,如果您在编写程序时手头有值,就直接使用第二种方法。
在ES6中,使用计算的属性名称 。
const key = "anything"; const object = { [key]: "key attribute" // ^^^^^ COMPUTED PROPERTY NAME };
注意key
的方括号。 实际上你可以在方括号中指定任何expression式,而不仅仅是一个variables。
这应该做的伎俩:
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);
最近需要一个解决scheme如何设置cookie传递dynamicjson键值。 使用https://github.com/js-cookie/js-cookie#json ,可以轻松完成。 希望将每个select的用户选项值存储在cookie中,所以在选项卡或浏览器closures的情况下不会丢失。
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;
它有点棘手,但嘿,它的作品!