通过连接引用JS对象

时间:2016-03-22 19:47:11

标签: javascript object concatenation

我想调用一个对象。

我目前正在这样做:

var key = object_0

我喜欢的方式

var key = "object_" + questionId;

但是当调用连接的object_0时,我没有得到对象信息 当我做的时候:

console.log(key)

任何见解都会很棒。

3 个答案:

答案 0 :(得分:1)

如果您使用ES5,则可以创建新的空对象。以下是步骤:

1.创建空对象

var o = {};

2。使用括号在对象上生成新键 - ("object_" + questionId) - 这将强制解析器首先计算括号中的表达式

3.将值分配给新添加的密钥

o[("object_" + questionId)]  = XXX;

然后console.log(o)将输出{object_0: XXX}

答案 1 :(得分:1)

简答:全球范围+括号。

window['object_'+questionId] = 'foo';
console.log(window['object_'+questionId]); // 'foo'

答案很长:Use dynamic variable names in JavaScript

答案 2 :(得分:0)

您可以使用窗口对象(仅访问全局变量):

var object_0 = { p: 42 },
    questionId = 0,
    key = "object_" + questionId;
document.write(window[key].p);

但我建议将数据结构更改为更简洁的样式:

var questions = { 200: { p: 42 }},
    questionId = 200;
document.write(questions[questionId].p);