我是javascript的新手,但我有三个变量,我想确定哪一个是最大的,有没有办法将变量放入数组,或者更简单的方法来确定哪个是最大的?
目标是让客户提出一些问题,并且每个问题都会增加相应的变量。如果您进行测试,您会在下面的链接中注意到。一旦确定哪个变量最大,它就会将文档写入span id。
我已经搜索过,但对此没有太多了解。
http://www.sprayfoamsys.com/cmsdev/index.php?page=rig-constructor
答案 0 :(得分:5)
当你说“最大”时我会假设你想要比较最大的数值,这很简单:
largest = Math.max(a, b, c);
可能需要某种类型强制,因为Math.max
需要数值:
a = 'foo100';
b = 'foo200';
c = 'foo300';
largest = Math.max(a, b, c);
在这种情况下,largest
将为NaN
,因为没有值是数字。对于此示例,您可以使用:
r = /\D/g;
largest = Math.max(a.replace(r, ''), b.replace(r, ''), c.replace(r, ''));
//largest == 300
对于后缀值,例如30px
,您可以使用parseInt
如果您需要知道哪个变量最大,可以将最大值与原始变量进行比较:
//这是两个不能很好扩展的简短示例,但适用于< 5项
if (largest === a) {
//a
} else if (largest === b) {
//b
} else if (largest === c) {
//c
}
switch (largest) {
case a:
//a
break;
case b:
//b
break;
case c:
//c
break;
}
答案 1 :(得分:1)
" Math.max()"函数可以传递任意数量的参数,并且它将返回最大的参数。因此,如果您想要的是列表中最大的值,那么应该这样做。
还要注意&#34;做一个document.write()&#34;不是你如何更新页面。调用&#34; document.write()&#34;页面完成后,其初始渲染将消除它。相反,您要做的就是找到<span>
的&#34; id&#34;值然后设置它的&#34; innerHTML&#34;:
var theSpan = document.getElementById("the-id-of-the-span");
theSpan.innerHTML = largestValue;
答案 2 :(得分:0)
在查看您提供的链接后,看起来其他人提供的Math.max
解决方案实际上并不是您想要的,因为您不想知道值最大的变量>,而哪个变量是最大的。最简单(也是最可读)的方法是:
if (a >= b && a >= c) {
document.getElementById("mySpan").innerHTML("Plan A is the best.");
} else if (b >= a && b >= c) {
document.getElementById("mySpan").innerHTML("Plan B is the best.");
} else {
document.getElementById("mySpan").innerHTML("Plan C is the best.");
}
请注意,根据您提供的测验格式,用户完全可以获得平局。
答案 3 :(得分:0)
这是查找最大数组项的索引和值的一种方法,如果您抽象代码来处理 n 选项,这可能会派上用场。
var largest = -99999; // something less than the largest
var largestIndex = -1; // an invalid array index
var check = [4, -2, 0.11023, 100, 500];
for (var i=0; i < check.length; i++) {
if (check[i] > largest) {
largest = check[i];
largestIndex = i;
}
}
alert('the largest was item ' + largestIndex + ' with a value of ' + largest);