比较 3 个 JavaScript 变量的值

compare values of 3 javascript variable

本文关键字:变量 JavaScript 比较      更新时间:2023-09-26

我想比较 3 个 javascript 变量值,它们是相等的,需要执行一个函数。

if(vcount === tcount === lcount){
//do something;
}

和(根据之前的答案)

if((vcount == tcount) && (tcount == lcount)){
    //do something;
    }

但它对我不起作用。

考虑以下代码-

1===1===1

由于===运算符是左右关联的,因此首先评估1===1的第一部分。

1===1返回true . 然后有以下比较

true===1

这绝对是false,因为布尔true1不同,因为===考虑值和数据类型

因此,每当第 3 个参数boolean如果您使用 === 来比较它们,它肯定会返回 false。因此,您应该始终使用第二种语法来比较任何 3 个值。

尝试使用条件(三元)运算符(?:)这将有所帮助。请参考以下示例这是替代解决方案的一种方式

<!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>

除了其他人所说的之外,请验证您的变量是否正确。 例如,一个可能是字符,另一个是整数。 尝试通过执行toString(value)或parseInt(value,10)来验证它们是否相同。

有多种方法可以做到这一点。我更喜欢这种方式来处理 n 个变量

    function isEqual1() {
        var val = arguments[0],
            equal = true;
        for (var i = 0; i < arguments.length; i++) {
            equal = (arguments[i] === val);
            if (!equal) return false;
        }
        return equal;
    }

    function isEqual2() {
        var args = Array.prototype.slice.call(arguments, 0);
        var equal = args.join(',').replace(new RegExp(args[0], "ig"), '').replace(/,/g, "");
        return equal.length == 0;
    }

结果

    console.log(isEqual1(1, true, false, "xyz"));
    console.log(isEqual1(true, true, true, true));
    console.log(isEqual2(true, 123, true, true));
    console.log(isEqual2(true, true, true, true));

演示:http://jsfiddle.net/p5aa7/7/

一种更实用的方法是创建一个集合,而不是检查集合的大小:

const things = new Set(["b","b","b"]);
if (things.size === 1 ){
  console.log('Only one thing!');
}