在多维对象中使用变量作为键

时间:2017-07-16 18:06:41

标签: javascript object multidimensional-array

如果我有一些值,我想将它存储为对象。所以最后我需要调用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

但没有成功。

4 个答案:

答案 0 :(得分:2)

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

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

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

console.log(items);

请注意,您不应将name用作变量的名称!

答案 1 :(得分: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/" } }

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

    var obj = {
            'name': name,
            'url': url
         }

    var items = {};

    items[id] = obj;