我有三个变量输出不同的变量:
a = parseInt(Math.random() * 10000);
b = parseInt(Math.random() * 10000);
c = parseInt(Math.random() * 10000);
假设没有变量将是相等的,我将如何检测哪个变量具有最高值?
答案 0 :(得分:2)
只需使用Math.max()
方法:
var max = Math.max(a, b, c);
答案 1 :(得分:2)
使用Math.max
a = parseInt(Math.random() * 10000);
b = parseInt(Math.random() * 10000);
c = parseInt(Math.random() * 10000);
var max = Math.max(a, b, c);
console.log(a, b, c, max);

答案 2 :(得分:0)
当然,如果您有可变数量的输入,只需使用Array.prototype.reduce()
:
let arr = [3,1,4,6,3]
arr.reduce((a, b) => Math.max(a, b)) // 6
这是@Thaadikkaaran在一条已删除的评论(AFAIR)中发布的内容。
这是一种方法,它会生成然后给出最大值,尽管在实践中使用Match.random()
这样做我不认为有意义:
Array(3).fill(Math.random() * 10000).reduce((a,b) => Math.max(a,b))
简洁的胜利者(如果你遵循spread operator):
Math.max(...[2,3,1,5,6,]) // 6
然后可以生成使用:
Math.max(...Array(3).fill(Math.random() * 10000))
e.g:
function maxFromRandom(n, s) {
return Math.max(
...Array(n).fill(Math.random() * s)
)
}
maxFromRandom(3, 10000)
答案 3 :(得分:0)
如果使用下划线
plt.legend(prop={'family': 'Arial'})
答案 4 :(得分:0)
你可以使用一堆conditional (ternary) operators ?:
。
我建议使用Math.floor
,因为它是敌人数字和等价的整数。 parseInt
函数用于对具有给定基数的数字进行字符串解析。
var a = Math.floor(Math.random() * 10000),
b = Math.floor(Math.random() * 10000),
c = Math.floor(Math.random() * 10000),
max = a > b
? a > c
? a
: c
: b > c
? b
: c;
console.log(a, b, c, max);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 5 :(得分:0)
您应该将这些变量的名称推送到数组中,并创建另一个数组以包含每个变量的相关值,这里是我的脚本:
var array1 = ['a','b','c'];
var array2 = [];
function findMaxVar(){
for(let i=0;i<array1.length;i++)
array2.push(Math.random() * 10000);
return array1[array2.indexOf(Math.max.apply(Math,array2))];
}
console.log(findMaxVar());