【问题标题】:Using variables as keys in multidimensional object在多维对象中使用变量作为键
【发布时间】:2017-07-16 18:06:40
【问题描述】:

如果我有一些值并且我想将它存储为一个对象。所以最后我需要打电话给JSON.stringify()(因为我想把它存储在chrome扩展中)

var id = '1';
var name = 'Mali Bakery'
var url = 'http://example.com/'

所以我认为最好的方法是将其排序为:

var items = {
     id : {
        'name': name,
        'url': url
     }
}

但我不知道如何将变量放入对象模板中。

我尝试过使用

item = {}
item[id] = id
item[id].name = name  
// etc

items.push(item);

// and also, this approach too
items.id = id

但没有成功。

【问题讨论】:

标签: javascript object multidimensional-array


【解决方案1】:

您可以将id 放在括号[] 中,以便将其评估为变量值:

var id = '1';
var name = 'Mali Bakery'
var url = 'http://example.com/'

var items = {
      [id] : {
        name,
        url
     }
}

console.log(items);

请注意,您不应使用 name 作为变量名!

【讨论】:

    【解决方案2】:

    你可以这样做

    var id = '1';
    var name = 'Mali Bakery'
    var url = 'http://example.com/'
    var items = {}
    
    items[id] = {
        'name': name,
        'url': url
    }
    
    console.log(items);
    

    这给出了以下输出:

    { 1:{ name: "Mali Bakery", url: "http://example.com/" } }

    【讨论】:

      【解决方案3】:
      var items = {};
      items[id] = { name, url };
      

      【讨论】:

        【解决方案4】:
            var id = '1';
            var name = 'Mali Bakery'
            var url = 'http://example.com/'
        
            var obj = {
                    'name': name,
                    'url': url
                 }
        
            var items = {};
        
            items[id] = obj;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-16
          • 1970-01-01
          • 1970-01-01
          • 2018-01-30
          相关资源
          最近更新 更多