Math.max() - 如果更多的元素是最大的?

时间:2014-08-24 13:17:56

标签: javascript math numbers max highest

对于我的测验,我想得到所有答案中最多的答案。到目前为止它有效,但是当有4个答案时,2个表示A是正确的,2个表示B是正确的,那么整个组结果应该是错误的。所以我想知道,如果只有一个最高要素:

例如: Math.max(1,2,3,4)---> 4 Math.max(2,2,0,0)---> 2(我需要知道有多个最高要素)

谢谢,Marc

3 个答案:

答案 0 :(得分:2)

所以为此编写自己的函数,如下所示:

function maxFindAndCount(listOfNumbers) {
  var result = { max: null, count: 0 };
  result.max = Math.max(listOfNumbers);
  for (var l in listOfNumbers) {
    if (listOfNumbers[l] == result.max)
      result.count++;
  }
  return result;
}

用法:

var listOfNumbers = [1,2,3,4,4];
var result = maxFindAndCount(listOfNumbers);
var max = result.max;
var count = result.count;

答案 1 :(得分:2)

对于这个答案,我假设您将答案放在数组中。

您可以先使用此功能查找数组的最大值:

var maxValue = Math.max.apply(null, array);

然后,您可以使用以下命令查找此值发生的次数:

array.sort();
var nrOfMaxValue = array.lastIndexOf(maxValue) - array.indexOf(maxValue);

希望这适合你!

编辑:我想,如果您只是想知道最多答案是否多次给出,您可以这样做,而无需对数组进行排序:

var maxValue = Math.max.apply(null, array);
var onlyOnceAnswered = array.lastIndexOf(maxValue) == array.indexOf(maxValue);

答案 2 :(得分:0)

function highscores(arr){
    var max= Math.max.apply(Array, arr);
    return arr.filter(function(itm){
        return itm=== max;
    });
}

var A = [2,3,4,4];

<强>高分(A)

returned value: (Array)[4, 4]