2017-08-31 79 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

這只是找到最大的價值,而不是變量名稱。 –

相關問題