【问题标题】:Javascript - Find middle value of user inputted numbersJavascript - 查找用户输入数字的中间值
【发布时间】:2014-11-29 14:02:46
【问题描述】:

我无法弄清楚这一点,我认为可能有一个简单的解决方案,但我只是措辞不正确。

我知道如何找到 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 个数字的中间值。

希望这是有道理的。

【问题讨论】:

  • 用户可以输入多于/少于3个数字吗?
  • numbers.sort(function(a, b) { return a - b; })numbers[Math.floor(numbers.length / 2)] 怎么样?

标签: javascript html max min


【解决方案1】:

试试这个方法:

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

【讨论】:

  • 谢谢。这行得通。只是代码有另一个问题。不知道我是否应该发布整个代码,或者编辑我的帖子。
  • 您遇到了什么问题?您可以在问题中添加信息。
【解决方案2】:

没有 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/

【讨论】:

  • 这是一个非常优雅的解决方案,并且在其他语言中也能很好地呈现。我向其他人推荐这个解决方案。
【解决方案3】:

我会使用偏差,作为输入,我得到一些 input_array(用户输入的值..)并获得这个数组的长度并将其分成一半。此函数将返回中间元素的索引。最后只返回该索引的值。

但是如果数组的长度是奇数,你必须理解问题:p。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多