如何拥有对象对象并动态调用它们?

时间:2015-08-11 17:55:11

标签: javascript

所以,我知道我要做什么我只是不确定我做得对,希望我的问题描述了我想要做的事情。

我有十几个看起来像这样的数组:

var floorStatusAr = ['','','','','','','','disabled'];
var floorStatusSp = ['','','','','disabled','','',''];
var floorStatusSmm = ['','disabled','','','','','disabled',''];

对我来说这似乎太多了,所以我希望有更好的方法。这是我的尝试:

var floorStatuses = {
    AR:['','','','','','','','disabled'],
    SP:['','','','','disabled','','',''],
    SMM:['','disabled','','','','','disabled','']

我也尝试过:

var floorStatuses = {
    "AR":['','','','','','','disabled',''],
    "SP":['','','','','disabled','','',''],
    "SMM":['','disabled','','','','','disabled',''],

我可以从

获得结果
alert(floorStatuses.AR[0]); //alerts "", [7] alerts "disabled"

但在我的其余代码中,我需要能够动态调用它们。为了测试这个我做:

initial = "AR";
alert(floorStatuses.initial[0]);

但我只是得到floorStatuses.initial未定义的错误。

如果我甚至可以捕获" AR"来自数组,如

alert(floorStatuses[0]); //hoping to alert "AR", but it just alerts "undefined"

我可以使用它,因为那时我可以运行for循环并将其与另一个变量进行比较。

我必须有语法或逻辑错误或其他东西。当然这是可能的。

要解决此问题,请将其标记为副本:

如果我在寻找这个问题的解决方案时遇到了这个问题,那就不会解决我的问题。重复中的问题甚至不使用与我相同类型的对象,因此它无法解释我如何调用我想要调用的内容。瞥一眼就可以了,因为我的对象包含数组,所以看起来就像副本一样。

2 个答案:

答案 0 :(得分:2)

你太近了:

alert(floorStatuses[initial][0]);

答案 1 :(得分:2)

在JavaScript中,您可以通过两种方式访问​​对象属性,<img t-att-src="kanban_image('res.users', 'image_small', member)"/> object.propertyName。您可以在此处阅读有关使用对象的更多信息:MDN

您需要做的是:

object["propertyName"]