0

我需要获取一个变量的值,该值将是“step1”、“step2”、“step3”等之一。

然后我想从该变量中获取数字,例如。从“step1”中只得到“1”,然后得到 1。

因此,如果值为 step1,我将得到另一个值为 step2 的变量。

var currentStep = step1;

var nextStep =.....

谢谢!

4

3 回答 3

1

如果您需要具有递增数字的变量,那么考虑使用数组它会更直接。

演示

arrSteps = [1,3,5];

要遍历数组,您可以使用循环

for(i=0; i < arrSteps.length; i++)
   alert(arrSteps[i]);
于 2013-08-30T16:24:29.870 回答
0

根据我的理解,您希望获取一个变量名并将其作为字符串进行操作,然后调用名称为新修改的字符串值的变量的值。

如果是这样,我有两个想法:

  1. 如果这些变量(step1step2等)是全局变量,您可以调用window[variableName]来获取它们的值。在您的情况下,window['step1']应该返回 variable 的值step1,并且您可以使用 jQuery 字符串函数来修改键值。例如,

    var currentStep = 'step1';
    var nextStep = 'step' + (parseInt(currentStep.substr(4))); //nextStep = 'step2'
    
    console.log(window[currentStep]) //prints 'value of step1'
    console.log(window[nextStep]) //prints 'value of step2'
    
  2. 如果这些不是全局变量,您应该使用这样的对象:

    var steps = {
        step1: "value of step1",
        step2: "value of step2",
        step3: "value of step3"
    };
    

    并使用与数字 1 相同的方法调用它们(除了. 或者您window[currentStep]可以steps[currentStep]使用@Adil 的答案中的数组:

    var steps = ["value of step1", "value of step2", "value of step3"]
    

总之,您最初想到的并不是好的编码实践,但是您可以使用这些变通方法来帮助您实现目标。

于 2013-08-30T17:37:33.480 回答
-1

您还可以制作一对数组以将每个步骤与一个数字相匹配。

var stepToNum = {'step1':1, 'step2':2, 'step3':3, ...}
var numToStep = ['step1','step2','step3', ...],

var currStep = 'step1';

var newStep = numToStep[(stepToNum[currStep]+1)];
于 2013-08-30T16:27:17.847 回答