2013-08-30 34 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"] 
    

總而言之,您最初想到的並不是良好的編碼習慣,但您可以使用像這樣的解決方法來幫助您實現目標。