【问题标题】:Javascript: how to set a variable's value as the key in an associative array? [duplicate]Javascript:如何将变量的值设置为关联数组中的键? [复制]
【发布时间】:2014-05-26 17:29:09
【问题描述】:

我需要通过以下方式构建动态关联:

我有一个名为 param 的变量

var arr = { param's value : "another value"};

我无法将参数的值作为键。

感谢和问候!

【问题讨论】:

    标签: javascript


    【解决方案1】:

    从技术上讲,它是一个对象 {} 一个数组是用(方)括号编写的 []

    可以在对象上设置新道具或编辑道具:

    var obj = {};
    obj.key = 'value';
    // or 
    obj['key'] = 'value';
    
    //object inside an object. 
    var obj = {};
    obj.objNested = {
        key: 'value'
    }; 
    // or
    obj.objNested = {};
    obj.objNested.key = 'value';
    
    // or with a variable;
    var obj = {};
    var key = 'prop';
    obj[key] = 'value';
    
    // an array containing objects:
    var array = [
         { key: value },
         { key: value }
    ];
    

    【讨论】:

      【解决方案2】:

      不清楚你在问什么,但试一试:如果你的意思是你有一个变量 param,并且想使用它的值(只是它的值)作为属性名称:

      var obj = {}; // Note "obj", not "arr" -- it's not an array
      obj[param] = "another value";
      

      之所以有效,是因为在 JavaScript 中,您可以使用“点”表示法和文字 (obj.foo) 或括号表示法和字符串 (obj["foo"]) 来访问对象的属性。在第二种情况下,字符串可以是任何表达式的结果,适用于文字的属性名称约束不适用(因为我们没有使用文字)。

      【讨论】:

      • "我有一个名为 param 的变量" 我认为 OP 只想要 param 的值。顺便说一句,似乎是重复的。
      • T.J. Crowder,我认为您的解决方案与 Anoop 的解决方案相同,对吗?
      • @curious1:其实我觉得我们都有点误解了。感谢 OneKitten,我已经更新到我认为你想要的。
      • 感谢您的跟进!
      【解决方案3】:

      您是否只想使用存储在变量param 中的值作为键?

      如果是这样:

      var param = 'something',
          myObject = {};
      
      myObject[param] = 'something else';
      

      【讨论】:

        【解决方案4】:

        只需将密钥放在引号中:

        var arr = { "param's value" : "another value"};
        

        【讨论】:

        • 我认为他的意思可能是一个变量而不是一个字符串。
        • 哦..所以我想我误解了这个问题。谢谢。
        • +1 以防param 不是变量。
        【解决方案5】:

        试试这个。

        var arr = {};
        arr[ param + "'s value"] = "another value";
        

        注意:'var arr = {}',这里的 arr 是 Object 而不是数组。 see

        【讨论】:

        • 哈哈什么奇怪的钥匙可以有这个名字:D?
        • 这真是太聪明了!!!!
        • 我认为 的价值 是 OP 试图解释问题。
        猜你喜欢
        • 2012-07-18
        • 2016-12-27
        • 1970-01-01
        • 2019-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多