3

3 つの JavaScript 変数値を比較したいのですが、それらは等しいので、関数を実行する必要があります。

if(vcount === tcount === lcount){

//do something;
}

および(この前の回答に従って)

if((vcount == tcount) && (tcount == lcount)){

    //do something;
    }

しかし、それは私にとってはうまくいきません。

4

4 に答える 4

5

次のコードを検討してください-

1===1===1

===演算子は左右結合であるため、最初の部分が最初1===1に評価されます。

1===1戻りますtrue。次に、次の比較があります

true===1

これは間違いなくfalsebooleanが value と datatype を考慮するためとtrue同じではないためです。1===

したがって、3 番目のパラメーターがそうでないboolean場合は常に、それらを比較するためにfalse使用すると必ず返されます。===したがって、常に 2 番目の構文を使用して3 つの値を比較する必要があります。

于 2013-10-18T05:24:52.043 に答える
2

条件付き (三項) 演算子 (?:) を試してみてください。以下の例を参照してください。これは代替ソリューションの 1 つの方法です。

<!DOCTYPE html>
<html>
<body>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction()
{
document.getElementById("demo").innerHTML= getResult(7,5,5);
}

function getResult(x,y,z){
 return x===y?x===z?true:false:false;
}

</script>

</body>
</html>
于 2013-10-18T04:15:11.797 に答える
1

他の人が言ったこととは別に、変数が正しい型であることを確認してください。たとえば、1 つは文字で、もう 1 つは整数です。toString(value) または parseInt(value,10) を実行して、それらがすべて同じであることを確認してください。

于 2013-10-18T04:42:14.740 に答える