2017-07-13 14 views
0

関数に2つのパラメータを渡そうとしています。私はパラメータ "アイテム"を取って、 "sum"というパラメータで除算します。時間よりも100倍大きくなります。しかし、変数 "percent"に結果が格納されるのはNaNだということです。これを引き起こす原因は何か?NaNエラーを返す関数の変数

function calcPercent(item, sum) 
    { 
     var percent = item/sum; 
     percent = percent * 100; 
     return Math.round(percent); 

    } 

私のIDEでコードをデバッグする、項​​目=配列[3]との和= 94000

+0

これは、 '/'のオペランドの1つが数値でない場合に発生します。 'calcPercent'のcallsiteを表示するか、少なくとも' item'と 'sum'を' calcPercent'の最初の行として表示して、両方が数字であることを確認してください。 – Will

+0

私のIDEのコードをデバッグするとき、item = Array [3]、sum = 94000 – CChristiansen

答えて

0

このコードはitemsumが実際に数字であると仮定動作する必要があります。実際には、あなたを助けるために文字列を数値に変換することさえあります。 itemまたはsumが未定義の場合、または両方が配列のようなオブジェクトのようなものである場合は動作しません。この機能に何が渡されているかを確認する必要があります。おそらく関数内の素早いconsole.log(item, sum)は、それらの値が何であるか把握するのに役立ちます。

+0

私のideのコードをデバッグするとき、item = Array [3]とsum = 94000 – CChristiansen

+0

だから問題になります。 'item'は数値ではなく、整数で配列を分割しようとするとjavascriptは何をすべきか分かりません。その配列に、代わりに使用する必要がある特定の値がありますか?たぶん、配列内のすべての値のパーセントを探したいかもしれません。その場合、 'forEach'または' for'でループし、各値を関数に送ることができます。 –

+0

はい、配列内の各項目のパーセンテージを取得する必要があります。そのため、forループが役立ちます。 – CChristiansen

関連する問題