2017-02-01 83 views
0

昨天我收到了一些有關此問題的答案,但此代碼無法正常工作,我無法在我的原始線程上回復任何人用盡可能少的話就可以。將字母和數字的數組分割成兩個單獨的數組

我試圖從一個輸入框輸入需要,分裂他們,然後將它們整理成兩個陣列:一個數字,其他非數字。

這裏是我的代碼:當我檢查我的陣列出現

var splitResult = listResult.split(separator); 
    var L = 0; 
    letterArray = []; 
    numberArray = []; 
    for (; L < splitResult.length; L++) { 
    if(isNaN(splitResult[L]) && typeof splitResult[L] === 'string') { 
    letterArray.push(splitResult[L]); 
    L = L + 1 
    } else if (Number(splitResult[L])) { 
    numberArray.push(splitResult[L]); 
    L = L + 1; 

我的問題。當輸入混合時,我得到我的數組ArrayArray看起來很完美,但是絕對沒有輸出給letterArray,甚至沒有定義或NaN或0.此外,當輸入僅爲數字時,例如:1,2,3,4 ,5,6,7, numberArray顯示爲1,3,5,7,

請告訴我,如果你可以什麼錯。

+0

您可以發佈字母數字輸入和預期結果嗎? – RomanPerekhrest

回答

0

增量L = L + 1;不是必需的。

由於在for循環,你遞增大號爲L ++的值,所以不需要另一個增量升。

var splitResult = listResult.split(separator); 

     var L = 0; 
     letterArray = []; 
     numberArray = []; 
     for (; L < splitResult.length; L++) { 
     if(isNaN(splitResult[L]) && typeof splitResult[L] === 'string') { 
     letterArray.push(splitResult[L]); 

     } else if (Number(splitResult[L])) { 
     numberArray.push(splitResult[L]); 
     } 
+0

非常感謝你 – Giverbud

0

我想你會在循環中加兩次L + 1,跳過一些字符。

刪除

L = L + 1; 

從每個if語句

+0

你和阿加洛是偵探之神,謝謝 – Giverbud