2017-02-01 44 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