对于我的测验,我想获得所有答案中的最高数量。到目前为止它是有效的,但是当有 4 个答案并且 2 个说 A 是正确的和 2 个说 B 是正确的时,那么整体组结果应该是错误的。所以我想知道,如果有不止一个最高元素:
示例: Math.max(1,2,3,4) ---> 4 Math.max(2,2,0,0) ---> 2 (我需要知道有多个最高元素)
谢谢,马克
对于我的测验,我想获得所有答案中的最高数量。到目前为止它是有效的,但是当有 4 个答案并且 2 个说 A 是正确的和 2 个说 B 是正确的时,那么整体组结果应该是错误的。所以我想知道,如果有不止一个最高元素:
示例: Math.max(1,2,3,4) ---> 4 Math.max(2,2,0,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;
对于这个答案,我假设您将答案放在一个数组中。
您可以首先使用此函数来查找数组的最大值:
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);
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]