我想比较3个javascript变量值并且它们相等,需要执行一个函数。
if(vcount === tcount === lcount){
//do something;
}
和(根据this previous answer)
if((vcount == tcount) && (tcount == lcount)){
//do something;
}
但它不适合我。
答案 0 :(得分:2)
尝试使用条件(三元)运算符(?:)这将有所帮助。请参考以下示例 这是替代解决方案的一种方式
<!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>
答案 1 :(得分:1)
除了其他人所说的,请验证您的变量是否正确。例如,一个可能是一个字符,另一个是整数。尝试通过执行toString(value)或parseInt(value,10)来验证它们是否完全相同。
答案 2 :(得分:1)
有多种方法可以做到这一点。我更喜欢这种方式来处理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));
答案 3 :(得分:1)
考虑以下代码 -
1===1===1
由于===
运算符是左右关联,因此首先评估1===1
的第一部分。
1===1
返回true
。然后有以下比较
true===1
绝对是false
,因为布尔 true
与1
不同,因为===
会考虑值以及数据类型< /强>
boolean
,如果您使用false
进行比较,它肯定会返回===
。因此,您应该 始终使用第二种语法 来比较任何3个值。