从变量值中检索数字并对其进行操作

时间:2013-08-30 16:22:03

标签: jquery

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

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

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

var currentStep = step1;

var nextStep = .....

谢谢!

3 个答案:

答案 0 :(得分:1)

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

<强> Demo

arrSteps = [1,3,5];

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

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

答案 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]。或者您可以使用@ Adil的答案中的数组:

    var steps = ["value of step1", "value of step2", "value of step3"]
    
  3. 总之,您最初的想法并不是良好的编码实践,但您可以使用这些方法来帮助您实现目标。

答案 2 :(得分:-1)

您还可以创建一对数组以将每个步骤与数字匹配。

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

var currStep = 'step1';

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