繁体   English   中英

有没有办法在 JavaScript object 文字中使用变量键?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM