此问题与上述类似,但在标记为重复之前不一样。
在重新学习如何使用计算值后,我遇到了另一个问题。
在我的javascript中,我有以下代码:
var incidentWizard = ['page1.html','page2.html','page3.html'];
var magicWizard = ['page1.html','page2.html','page3.html'];
var loadedURL = 'page1.html';
此功能的输入将是(true,'incident')
function(next,wizardname)
{
var WizSize = incidentWizard.length;
wizardName = [wizardName] + 'Wizard';
var wizardPOS = jQuery.inArray(loadedURL,incidentWizard);
现在我想使用wizardname参数来决定我要使用的数组......
Loader(incidentWizard[wizardPOS],true);
我也试过
Loader([incidentWizard][wizardPOS],true);
和
Loader([incidentWizard][wizardPOS],true);
此外,loader函数只需要wizardPOS数组中的字符串值,对不起混淆
但是当我尝试这个时,我总是得到结果......
/incidentWizard
我知道这与使用计算值有关但我已经尝试过阅读它们并且似乎无法解决这个问题。
基本上我想使用wizardName的计算值来访问该名称的数组。
请帮助支持,期待看到很多方法来做到这一点!
答案 0 :(得分:1)
您只能以这种方式访问对象的属性。对于全局值,window[ name ]
将起作用。对于简单的局部变量,根本不可能。也就是说,如果你在一个函数里面有
var something;
然后如果您拥有的只是字符串“something”,则无法获得该变量。
答案 1 :(得分:1)
我只想将每个数组作为对象放在一个对象上:
var obj {
incidentWizard: ['page1.html','page2.html','page3.html'],
magicWizard: ['page1.html','page2.html','page3.html']
};
然后你可以obj['incidentWizard']
或obj.incidentWizard
这将返回:
['page1.html','page2.html','page3.html']
答案 2 :(得分:1)
在这一行:
wizardName = [wizardName] + 'Wizard';
您正在尝试将字符串“向导”连接到Array
,其中包含一个字符串元素“incident”。我假设你只是想要常规字符串连接:
wizardName = wizardName + 'Wizard';
但是,现在您只有一个字符串,而不是一个数组实例。要解决此问题,请将定义*Wizard
数组的方式更改为:
var wizardyThings = {
incidentWizard : ['page1.html','page2.html','page3.html'],
magicWizard: ['page1.html','page2.html','page3.html']
};
然后你的函数(它缺少一个名字)变成:
function someMethod(next, wizardname) {
wizardName = wizardName + 'Wizard';
var wizSize = wizardyThings[wizardName].length;
var wizardPOS = jQuery.inArray(loadedURL, wizardyThings[wizardName]);
...
}