什么是检测变量中最高值的最短方法?

时间:2017-11-04 15:39:31

标签: javascript

我有三个变量输出不同的变量:

a = parseInt(Math.random() * 10000);
b = parseInt(Math.random() * 10000);
c = parseInt(Math.random() * 10000);

假设没有变量将是相等的,我将如何检测哪个变量具有最高值?

6 个答案:

答案 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());