2017-02-01 12 views
0

私は非常に新しいjavascriptです。数字の混合入力を受け取り、配列をループして並べ替える関数を作成しようとしています私はそれらをさらに操作することができるように2つの新しい配列に変換します。数値と非数値の配列を2つの別々の配列に分割する

だから私は 1、2、B、3、C、4、Dの入力、私は 1,2,3,4との二つの新しい配列を作りたい

を持っている場合、B、C、D

これまでのところ私は今

1a2b3c4d

私は今で行うことができるために必要なすべてを持っているように、カンマで入力文字列を分割することができました数字と数字以外の数字だけを区切ります。その後、場合

をチェック1(isNan.array [N] == TRUE)

して、ループを使用して変数に文字を格納するための方法を見つけようと:私は2つのループを使用して考えていました他の関数を使用している数値のために別のループを使用します。

これはどうやってやるべきですか?それについてどうやったらいいですか?

編集:

私は今手紙をチェックするには、このコードを持っている:

if (isNaN(splitResult[L])) { 
     for (i = 0; i < splitResult; i++) { 
      letterArray.add(splitResult[L]); 
      L = L + 1 

私は(変数Lを使用して)文字をカウントするボックスへの出力に結果をしようとすると、何も現れません。私は新しい配列を作ったのだろうかと疑問に思う。

+0

なぜループを二回することができますか? 'if(NaN ...)を行います。letterArray.add(array [i]);それ以外の場合はnumArray.add(array [i]); ' – Peter

+0

最初に試してみてください...もし期待どおりに動いていない場合は、ここでコードを表示してください。 – charlietfl

+0

' arrayName.forEach(functionName) ' JavaScript内で新しい項目を配列に追加するには、 "push"を "add"ではなく "letterArray.push(item)"にします。あなたはここでforEachの例を確認することができます:http://www.w3schools.com/jsref/jsref_forEach.aspまた、isNan(item)はBooleanを返すので、trueまたはfalseと単純に使う必要はありません'if(isNan(item)){}' – Girisha

答えて

0

ArrayプロトタイプforEachを使うことができる。または、通常のforループを使用して、配列の各要素を調べることができます。各要素がisNaNかどうかを確認し、適切な配列に適切に押し込むことができます。あなたは、ちょうど完了を

const yourArray = ['1','a','2','b','3','c','4','d']; 
const letterArray = []; 
const numberArray = []; 
yourArray.forEach((eachItem) => { 
    if(isNaN(eachItem)){ 
    letterArray.push(eachItem); 
    } else { 
    numberArray.push(eachItem); 
    } 
}); 

console.log(letterArray, numberArray); 
+0

ありがとう、あなたの入力のためにありがとう、私は – Giverbud

+0

で提供されたコードの "eachItem"を置き換えるか分からない 'eachItem'は配列の各値を表します。 'for'ループを使用している場合。あなたは 'yourArray [index]'を使っていました。 'forEach'メソッドはパラメータとして関数を取ることができ、その関数で指定された最初のパラメータは配列の各項目を表します。答えのリンクを確認してください。 –

+0

よろしくお願いします。ありがとうございます。 – Giverbud

0

以下のスニペットを使用する最初の配列に文字列を分割:)

let yourString = '1a2b3c4d'; 
let yourArray = yourString.split(''); 
let letterArray = []; 
let numberArray = []; 
yourArray.forEach(item => { 
    if(isNaN(item) && typeof item === 'string'){ 
    letterArray.push(item); 
    } 
    else if(!isNaN(item) { 
    numberArray.push(item); 
    } 
}); 

console.log(letterArray, numberArray); 
+0

だからループが最初にそれがために、この のように各項目を通過する私が作るのですか(; L Giverbud

+0

yourStringの値をあなたの "input"文字列に置き換えて、単に 'yourString.split( '')'を 'yourString.split( '、')'の代わりに入れてください。 – cyrix

+0

(今は配列です): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach – cyrix

関連する問題