2014-10-04 106 views
0

我很難弄清楚這一點,我認爲這可能是一個簡單的解決方案,但我只是沒有正確的措辭。Javascript - 查找用戶輸入數字的中間值

我知道如何找到3個輸入數字的最大值。

largest = Math.max(number1, number2, number3); // this code finds largest number 

我知道如何找到最小的數

smallest = Math.min(number1, number2, number3); //smallest number 

我想不出什麼了是如何找到中間的數字

因此,當用戶將在3個數字,說9 ,6,12(按此順序)

number1= 9 //first number user entered 
number2 = 6 // second number user entered 
number3 = 12 // third number user entered 

現在我有代碼來查找最小和最大的,6和12.但我沒有知道如何稱呼中間人。是否有我可以調用的Math.middle函數。我不是在尋找數組中的中間元素,我只是想要輸入3個數字的中間值。

希望這是有道理的。

+0

用戶是否可以輸入多/少於3個數字? – tewathia 2014-10-04 21:13:08

+1

'numbers.sort(function(a,b){return a - b;})',後面跟着'numbers [Math.floor(numbers.length/2)]''怎麼樣? – soktinpk 2014-10-04 21:13:17

回答

1

試試這個辦法:

middle = number1+number2+number3 - Math.min(number1, number2, number3) - Math.max(number1, number2, number3); 
+0

謝謝。這工作。只是有代碼的另一個問題。不知道我應該發佈整個代碼還是編輯我的帖子。 – user3577397 2014-10-04 23:09:23

+0

您遇到什麼問題?你可以添加信息到你的問題。 – 2014-10-05 03:20:43

0

我會使用偏差,作爲輸入,我得到一些input_array(用戶輸入..的值),並獲得這個數組的長度,並把它分爲一半。這個函數會返回你中間元素的索引。最後只是該索引的返回值。

但是,如果數組的長度很奇怪,你必須明白有問題:p。

1

沒有Math.middle功能,我不知道你想什麼,在這裏實現,但如果你只是希望找到的3個數字中間的數字那麼可以你的答案: -

function middleNumber(a,b,c){ 
    var arr=[]; 
    //Fill a array with the values 
    arr[0]=a; 
    arr[1]=b; 
    arr[2]=c; 
    //Sort the array and return the middle element 
    arr.sort(); 
    return arr[1]; 
} 

alert(middleNumber(1,2,3)); 

這裏是相同的工作示例: - http://jsfiddle.net/k0ruk1sq/

+0

這是一個非常優雅的解決方案,並且在其他語言中也很好。我向其他人推薦這個解決方案。 – 2016-12-02 16:54:29

相關問題