2013-08-30 35 views
0

我需要将其中的“第一步”,“第二步”,“第三步”等中的一个变量的值检索数量和操纵它

那么我想从数该变量例如。从“step1”得到“1”,从1得到“1”。

所以如果值是step1,我会得到另一个变量,其值为step2。

var currentStep = step1; 

VAR NEXTSTEP = .....

谢谢!

回答

1

如果你对增加数字的变量有要求,那么考虑使用数组将会更直接。

Demo

arrSteps = [1,3,5]; 

要通过阵列迭代可以使用循环

for(i=0; i < arrSteps.length; i++) 
    alert(arrSteps[i]); 
+1

要么这或使它们属性的对象。从这个问题我们可以看出,一个数组也是我想要的。 –

+0

不是我正在寻找的,我想要做的只是获取变量add 1的字符,然后创建另一个具有“step”+“newvalue”的变量。 – user1937021

-1

还可以使一对阵列的每个步骤,以一个号码相匹配。

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

var currStep = 'step1'; 

var newStep = numToStep[(stepToNum[currStep]+1)]; 
0

从我的理解,你想采取一个变量名和操纵它,仿佛它是一个字符串,并调用其名称是新修改的字符串值的变量的值。

如果是这样,我心里有两件事情:

  1. 如果这些变量(step1step2等)是全局变量,可以调用window[variableName]得到他们的价值观。在你的情况下,window['step1']应该返回变量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]给他们打电话。或者你可以使用数组像@阿迪尔的回答是:

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

总而言之,您最初想到的并不是良好的编码习惯,但您可以使用像这样的解决方法来帮助您实现目标。