0

この基本的な条件ステートメントに問題があります..

var が 9 の場合、スクリプトは機能しますが、10 以上になると、5 以下の数値のみの「不足している」ことを意味します...助けてください..

ありがとうございました。

<script type="text/javascript">


var inventory = "9";


if( inventory == "Sold Out" ){
   document.write("<b>Sold Out</b>");


}else if( inventory >= "6" ){
   document.write("<b>more than 5</b>");

}else if( inventory <= "5" ){
   document.write("<b>running low</b>");

}else{
  document.write("<b>error</b>");
}

</script> 
4

5 に答える 5

2

文字列ではなく数値を比較する必要があるため、条件が間違っています。これを試してください

<script type="text/javascript">
var inventory = 9;
  if( inventory == "Sold Out" ){
     document.write("<b>Sold Out</b>");
  }
  else if( inventory >= 6 ){
   document.write("<b>more than 5</b>");
  }
  else if( inventory <= 5 ){
   document.write("<b>running low</b>")
  }
  else{
    document.write("<b>error</b>");
 }
</script> 
于 2012-10-31T19:09:35.587 に答える
1

他の人が指摘しているように、問題は、数字が引用されている場合、引用されていない場合とは異なる意味を持つことです。

例えば:

var a = 2;

console.log(a == "2"); //returns true
console.log(a === "2"); //returns false

ほとんどの場合、JavaScript では「strict」演算子を使用することをお勧めします。

ドキュメントはここにあります。


また、読みやすく維持しやすいため、switch ステートメントの使用を検討することもできます。

var feedback,
    inventory = 9;

switch (true) {
    case inventory === 'Sold Out' : feedback = 'Sold Out'; break;
    case inventory >= 6           : feedback = 'more than 5'; break;
    case inventory <= 5           : feedback = 'running low'; break;
    default : feedback = 'error'; break;
}

document.write('<b>' + feedback + '</b>');
于 2012-10-31T19:19:59.237 に答える
0

比較では、文字列ではなく数値を使用する必要があります。

于 2012-10-31T19:09:52.607 に答える
0

あなたの問題は、数値ではなく文字列を比較しているという事実です。inventory >= 5

例: http://jsfiddle.net/UwGGg/

var inventory = "10";


if ( inventory == "Sold Out" ){
   document.write("<b>Sold Out</b>");


} else if ( inventory >= 6 ){
   document.write("<b>more than 5</b>");

} else if ( inventory <= 5 ){
   document.write("<b>running low</b>");

} else {
  document.write("<b>error</b>");
}​
于 2012-10-31T19:10:39.480 に答える
0

変数(在庫)が文字列または数値(「売り切れ」という値を受け入れるようです)であることを明確にしたい場合は、比較のために強制的に数値にすることをお勧めします...これにより、予期しない結果 (単体テストを行う場合) を提供し、文字列または数値のいずれかであることがわかっている値をテストしている他の誰かがそれらをキーオフするためのコードドキュメントを提供します。

于 2012-10-31T19:24:16.830 に答える