我需要获取变量的值,该变量将是“step1”,“step2”,“step3”等之一。
然后我想从该变量中获取数字,例如。从“step1”获得“1”,从中获得1。
所以如果值是step1,我最终会得到另一个值为step2的变量。
var currentStep = step1;
var nextStep = .....
谢谢!
答案 0 :(得分:1)
如果你需要增加数字的变量,那么考虑使用数组会更直接。
<强> Demo 强>
arrSteps = [1,3,5];
要遍历数组,您可以使用循环
for(i=0; i < arrSteps.length; i++)
alert(arrSteps[i]);
答案 1 :(得分:0)
根据我的理解,您希望获取变量名称并将其作为字符串进行操作,并调用其名称为新修改字符串值的变量的值。
如果是这样,我有两件事:
如果这些变量(step1
,step2
等)是全局变量,您可以调用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'
如果这些不是全局变量,则应使用如下对象:
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"]
总之,您最初的想法并不是良好的编码实践,但您可以使用这些方法来帮助您实现目标。
答案 2 :(得分:-1)
您还可以创建一对数组以将每个步骤与数字匹配。
var stepToNum = {'step1':1, 'step2':2, 'step3':3, ...}
var numToStep = ['step1','step2','step3', ...],
var currStep = 'step1';
var newStep = numToStep[(stepToNum[currStep]+1)];