对于我的测验,我想得到所有答案中最多的答案。到目前为止它有效,但是当有4个答案时,2个表示A是正确的,2个表示B是正确的,那么整个组结果应该是错误的。所以我想知道,如果只有一个最高要素:
例如: Math.max(1,2,3,4)---> 4 Math.max(2,2,0,0)---> 2(我需要知道有多个最高要素)
谢谢,Marc
答案 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]