![](/img/trans.png)
[英]Javascript - how to use a variable as a function *and* an object literal
[英]Is there a way to use variable keys in a JavaScript object literal?
我有这样的代码。
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";
或者,如果在编写程序时手头有值,则只需使用第二种方法。
这应该可以解决问题:
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);
最近需要一种解决方案,该方法如何设置传递动态json键值的cookie。 使用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;
有点棘手,但是,嘿!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.