2017-02-01 6 views
0

昨日この質問に対していくつかの回答がありましたが、このコードは必要な方法では正しく機能しません。元のスレッドの誰にも返信できません必要な数の単語で文字と数字の配列を2つの別々の配列に分割する

私は、入力ボックスから入力を取り出し、分割してから、2つの配列に並べ替えることを試みています:1つは数字用、もう1つは非数字用です。私は私の配列を確認したときに

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; 

私の問題が発生:

は、ここに私のコードです。入力がミックスされているとき、numberArrayは完璧に見えますが、letterArrayには決して出力がありません.NaNや0も定義されていません。また、入力が数字だけの場合、1,2,3,4 、5,6,7,numberArrayは1,3,5,7,

と表示されます。

できれば間違っていることを教えてください。

+0

英数字の入力と予想される結果を投稿できますか? – RomanPerekhrest

答えて

0

場合増分L = L + 1;は必要ありません。それぞれの

L = L + 1; 

を削除

forループでは、Lの値をL ++としてインクリメントしているため、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を2回追加して、いくつかの文字をスキップしていると思います。

声明

+0

あなたとアガロは検出の神です、ありがとうございます – Giverbud

関連する問題