0

以下のコードがあります。ここで if-else ステートメントを実行したいのですが、うまくいきません。これで何か考えはありますか?

var num1 = $('#id1').val(); 
var num2 = $('#id2').val();

var newVal = (num1+2)*(num2/4);
var nextVal =(num1+4)*(num2/2);
var newArr = new Array();
newArr.push(newVal);
newArr.push(nextVal);

newArr.sort();

if(newArr.get(0)==newVal)
$("body").html("<p>works fine!</p>");
else $("body").html("<p>works awfully!</p>");
4

4 に答える 4

3

newArr[0]代わりに使用するだけですnewArr.get(0)

于 2012-04-27T11:50:54.773 に答える
1

val文字列を返すため、おそらく数値に変換する必要があります。単項プラス演算子を使用できます。

var num1 = +$('#id1').val(); // Now you get 5 instead of "5" 
var num2 = +$('#id2').val();

//The problem shows up here when you are doing string concatenation instead of addition in the first set of parenthesis
var newVal = (num1+2)*(num2/4);

if(newArr[0]==newVal) // .get is for jQuery collections, just use brackets on an array
于 2012-04-27T12:05:14.897 に答える
0

次の行で大文字の V を使用して "Var" を宣言しました。

Var newVal = (num1+2)*(num2/4);

また、.get(index) の代わりに [index] を使用して配列の要素にアクセスします。

編集されたコードは次のとおりです。

  var num1 = 50;   
  var num2 = 100;

  var newVal = parseInt((num1+2)*(num2/4));
  var nextVal =parseInt((num1+4)*(num2/2));
  var newArr = new Array();
  newArr.push(newVal);
  newArr.push(nextVal);

  newArr = newArr.sort(function(a,b){return a - b});

  if(newArr[0]==newVal)
    $("body").html("<p>works fine!</p>");
  else
    $("body").html("<p>works awfully!</p>");​ 
于 2012-04-27T11:52:06.640 に答える
0

これを試して

var num1 = 50;   
  var num2 = 100;

  var newVal = (num1+2)*(num2/4);
  var nextVal =(num1+4)*(num2/2);
  var newArr = new Array();
  newArr.push(newVal);
  newArr.push(nextVal);

  newArr.sort();

  if(newArr[0]==newVal)
    $("body").html("<p>works fine!</p>");
  else
    $("body").html("<p>works awfully!</p>");
于 2012-04-27T11:52:47.877 に答える