2017-08-31 42 views
-2

我有四个变量,a,b,c和d,每个变量都包含0和100之间的数字,我不知道代码确定四个变量中哪一个包含最大数量。找出四个变量中哪一个包含javascript中最大的整数

我需要知道保存最高值的变量的名称,而不是最高值本身!

+0

你能证明你到现在做了一些代码,从头开始? –

+0

如果有多个具有最高值的变量,该怎么办? _确定具有最高价值的变量_是什么意思?你的意思只是价值,对吧?使用'Math.max(a,b,c,d)'。 – Xufox

+0

'Object.entries({a,b,c,d})。sort((a,b)=> a [1] - b [1])。pop()[0]' –

回答

-1

按降序对数组进行排序,得到第一个数组。

[a, b, c, d].sort(function(num1, num2){return num2-num1;})[0] 
+0

这不是重点。你需要找到变量,而不是最高值。 – campovski

+0

@campovski如果不是_finding value_,_finding变量_意味着什么? – Xufox

+0

查找变量名 – campovski

3

let a=8, b=1, c=9, d=3 
 

 
let obj={a,b,c,d}, 
 
\t greatest=Object.values(obj).sort().pop() 
 
\t key = Object.keys(obj).find(k => obj[k] === greatest) 
 

 
console.log(key) // Logs "c"

+0

如果我将b的值更新为10,则输出仍为“c”。 –

0

您可以使用此代码。如果您将来有负值,这也适用于负整数。这对你有用。

var a=10, b=20, c=15, d = 5; 
 
var array = [a, b, c, d]; 
 
var largest=a; 
 

 
for (i=1; i<=array.length;i++){ 
 
    if (array[i]>largest) { 
 
     largest=array[i]; 
 
    } 
 
} 
 
console.log(largest);

+1

如果所有数字都小于0会怎么样? – Barmar

+1

@Barmar是公平的..OP确实将界限设置为0到100 .. –

+0

不用担心,我已经编辑了我的答案以及负值的工作 –

0

您可以使用递归调用。 将所有变量存储在数组中。初始调用是通过执行findMax(a,a.length-1)。

function findMax(a, index) { 
 
    if (index > 0) { 
 
    return Math.max(a[index], findMax(a, index - 1)); 
 
    } else { 
 
    return a[0]; 
 
    } 
 
} 
 
var x = findMax([1, 4, 50, 3], 3); 
 
console.log(x); 
 
//In inital call pass array.length -1

+0

'公共静态int'?这甚至不是Javascript。 –

+0

请参阅now.Just将代码更改为java.lang的javascript,如果你喜欢我的回答,请上传:) –

+0

'将所有变量存储在一个数组中',你在代码中没有这样做。此外,我正在努力看看这个功能的功能。你甚至不会调用它或记录输出。 –

1

看看这个,工作对我来说...

Math.max(a, b, c, d); 
+0

这只是找到最大的价值,而不是变量名称。 –

相关问题