感谢阅读,我的部分代码存在问题,代码如下(为了更好的访问,我在html中包含了css和js):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Comparacion 3 numeros.</title>
<style media="screen">
body{
background: #1b2539;
color: #869443;
text-align: center;
}
#box1{
width: 300px;
background:#2ba15a;
color:#751434;
text-align: center;
font-size: 28px;
padding: 0px;
margin-top: 50px;
}
div {
margin: auto;
}
div p {
font-size: 32px;
text-align: center;
color: #25e421;
margin-top: 15%;
display: inline-block;
}
form{
display: inline-block;
align-content: center;
margin-top: 50px;
}
</style>
</head>
<body>
<script type="text/javascript">
function show(){
var a,b,c,heaviest;
a=parseFloat(document.getElementById('b1').value);
b=parseFloat(document.getElementById('b2').value);
c=parseFloat(document.getElementById('b3').value);
d=parseFloat(document.getElementById('b4').value);
if(a==b){
if(c<d){
heaviest=d;
}else{
heaviest=c;
}
}else{
if(a<b){
heaviest=b;
}else{
heaviest=a;
}
}
if (( (a>b&&c&&d) && (b==c==d) ) || ( (b>a&&c&&d) && (a==c==d) ) || ( (c>a&&b&&d) && (a==b==d) ) || ( (d>a&&b&&c) && (a==b==c) )){
document.getElementById('box1').innerHTML = "Heaviest is: " + heaviest + ".<br />";
}
else{
document.getElementById('box1').innerHTML = "Try again.<br />";
}
}
</script>
<form action="" onsubmit="show(); return false">
<input type="text" placeholder="Enter first ball" id="b1"><br>
<input type="text" placeholder="Enter second ball" id="b2"><br>
<input type="text" placeholder="Enter third ball" id="b3"><br>
<input type="text" placeholder="Enter fourth ball" id="b4"><br>
<input type="submit" value="Heaviest" onclick="show()">
</form>
<div id="box1">
<br>
</div>
<div>
<p>Enter 3 equal weights and 1 heavier!</p>
</div>
</body>
</html>
我希望你关注的是这一部分:
if (( (a>b&&c&&d) && (b==c==d) ) || ( (b>a&&c&&d) && (a==c==d) ) || ( (c>a&&b&&d) && (a==b==d) ) || ( (d>a&&b&&c) && (a==b==c) )){
document.getElementById('box1').innerHTML = "Heaviest is: " + heaviest + ".<br />";
}
else{
document.getElementById('box1').innerHTML = "Try again.<br />";
}
我在这里尝试做的是检查是否有3个相等的输入(无关紧要)和另一个大于其他3的输入,如果是,则调用show();如果没有,显示再试一次,我知道当然有更好的方法来做这一切,但我正在学习,并且首先要按照我所知道的方式去做,对我来说那部分是可以的,所以我没有得到为什么它不起作用。我感谢任何纠正。
答案 0 :(得分:1)
您可以使用以下代码执行此操作:
var a = b = c = '20', d = '120';
var arr = [a,b,c,d].sort((a,b) => a - b);
//Option 1
if(arr[0] == arr[1] && arr[1] == arr[2] && arr[2] * 1 < arr[3] * 1){
//Do something
}
//Option 2 (for more than 3 elements)
var i = 0;
while(arr[i++] == arr[i] && i < arr.length - 1);
if(i == arr.length - 1 && arr[i] * 1 > arr[i - 1] * 1){
//Do something
}
&#13;