2017-06-29 5 views
0

javascriptで配列のすべての要素型をチェックしようとしています。私は実際には数値で配列を受け入れるだけの関数を書いています。Javascriptで配列のすべての要素型をチェックする際に問題が発生する

ので

[1,2,-3,-4,0] //valid input 
[1,2,-3b,-4a,0] //Invalid input 

私は、次のようにjavascriptののすべての()関数を使って、次のことを達成しようとし

try { 
        if (!inputArr.every(x => typeof x === 'number')) { 
          throw 'input array should only have numbers'; 
        } 
       } 
       catch (err) { 
        return err; 
       } 

が、エラーを取得しています。私がそれを実感した以上にそれを調べると、英数字のタイプをチェックする方法はありません。誰かがここでいくつかのオプションを提案してください。私は純粋なjavascript ES5またはES6を使用しています。

+0

あなたはまた、[ますisNaN()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN) – Manatax

+0

@Manataxしかしを使用することができます'' 123 "'は数字ではありませんが、 '' isNaN( "123") 'は' false'を返します。それがOPのニーズに合っていれば、それはうまくいくでしょう。目標がより厳密なチェックである場合、 'typeof'は行く方法のように思えます。 –

+0

@ Manatax、私は厳密に入力された配列がすべての数字だけを持っていることを確認する必要があります。 isNanは@ Michael Gearyのようにここでは動作しません – Akash

答えて

0

[1,2,-3b,-4a,0]は無効な構文であり、プログラムは実行されません。したがって、入力は"[1,2,-3b,-4a,0]"のように文字列であると想定します。その場合:

function check(input) { 
    try { 
    const array = JSON.parse(input); 
    return array.every(x => typeof x === 'number'); 
    } catch(e) { 
    return false; 
    } 
} 
関連する問題