0

对于我的测验,我想获得所有答案中的最高数量。到目前为止它是有效的,但是当有 4 个答案并且 2 个说 A 是正确的和 2 个说 B 是正确的时,那么整体组结果应该是错误的。所以我想知道,如果有不止一个最高元素:

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

谢谢,马克

4

3 回答 3

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;
于 2014-08-24T13:20:39.183 回答
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);
于 2014-08-24T13:30:52.440 回答
0
function highscores(arr){
    var max= Math.max.apply(Array, arr);
    return arr.filter(function(itm){
        return itm=== max;
    });
}

变量 A= [2, 3, 4, 4];

高分(A)

returned value: (Array)[4, 4]
于 2014-08-24T13:50:33.810 回答