2017-04-09 23 views
0

これはなぜ機能していないのですか?コードは、ユーザーが入力した2つの値をとり、入力された値の間の配列リストの値の数を数えます。たとえば、ユーザーが最初の値として5を入力し、2番目の値として7を入力したとします.5〜7の配列の3つの値であるため、「合計値= 3」という警告が表示されます。しかし、現時点では、コードを実行すると、値の合計数が0になってしまっています。どうしてこれなの?配列で2つの入力値の間の値の数を数えます。

<!DOCTYPE html> 
<body> 
<input type="text" id="num1"></input> 
<input type="text" id="num2"></input> 
<button onclick="start()" type = "button">search</button> 

<script src="array.js"></script> 
</body> 

これは私のJavaScriptのである:

var total = 0; 
var num1 = ""; 
var num2 = ""; 
var array = [1,4,6,7,8,6]; 
for(var a = 0; a < array.length; a++) { 
    if(array[a] >= num1 && array[a] <= num2) { 
     total++; 
    } 
} 
alert("Total numbers of values = " + total); 
+0

のようになります

ここ

var num1 = ""; var num2 = ""; 
を変更することができます入力フィールド。 –

答えて

1
  • が唯一のボタンのクリックで実行する関数内で、あなたのロジックをドロップ

    は、これが私のHTMLです。

  • getElementByIdで入力をキャッチし、ユーザが指定した値をnum1num2個の変数に格納します。

function start() { 
 
    var total = 0; 
 
    var num1 = document.getElementById('num1').value; 
 
    var num2 = document.getElementById('num2').value; 
 
    var array = [1, 4, 6, 7, 8, 6]; 
 
    for (var a = 0; a < array.length; a++) { 
 
    if (array[a] >= num1 && array[a] <= num2) { 
 
     total++; 
 
    } 
 
    } 
 
    alert("Total numbers of values = " + total); 
 
}
<input type="text" id="num1"> 
 
<input type="text" id="num2"> 
 
<button onclick="start()" type="button">search</button>

またArray#filterでそれを行うことができます。この関数は、条件を満たす数だけの配列を返します。次に、残っている要素の数を知るためにlengthプロパティをチェックしてください。

function start() { 
 
    var num1 = document.getElementById('num1').value, 
 
     num2 = document.getElementById('num2').value, 
 
     array = [1, 4, 6, 7, 8, 6], 
 
     res = array.filter(v => v >= num1 && v <= num2).length; 
 
     alert("Total numbers of values = " + res); 
 
}
<input type="text" id="num1"> 
 
<input type="text" id="num2"> 
 
<button onclick="start()" type="button">search</button>

0

input値にnum1num2を設定します。

var num1 = document.getElementById('num1').value; 
var num2 = document.getElementById('num2').value; 
0

あなたのコードは大丈夫です、あなただけNUM1とNUM2は、あなたがから値を取得されていません0ですので、あなたのコードはよう

var num1 = document.getElementById('num1').value; 
var num2 = document.getElementById('num2').value; 
関連する問題