所以,我知道我要做什么我只是不确定我做得对,希望我的问题描述了我想要做的事情。
我有十几个看起来像这样的数组:
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循环并将其与另一个变量进行比较。
我必须有语法或逻辑错误或其他东西。当然这是可能的。
要解决此问题,请将其标记为副本:
如果我在寻找这个问题的解决方案时遇到了这个问题,那就不会解决我的问题。重复中的问题甚至不使用与我相同类型的对象,因此它无法解释我如何调用我想要调用的内容。瞥一眼就可以了,因为我的对象包含数组,所以看起来就像副本一样。
答案 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"]