文章来自司徒正美博客
-------致敬司徒君,一路走好。
const sampleStats = function(count) {
let min = Infinity;
let max = -Infinity;
let sum = 0;
let totalCount = 0;
let modCount = 0;
let mod;
for (let i = 0; i < count.length; i++) {
if (!count[i]) continue;
sum += i * count[i];
totalCount += count[i];
min = Math.min(min, i);
max = Math.max(max, i);
if (count[i] > modCount) {
modCount = count[i];
mod = i;
}
}
const medIndex1 = Math.floor((totalCount - 1) / 2);
const medIndex2 = Math.ceil((totalCount - 1) / 2);
let index = 0;
let med1, med2;
for (let i = 0; i < count.length; i++) {
if (!count[i]) continue;
index += count[i];
if (med1 === undefined && medIndex1 < index) {
med1 = i;
}
if (medIndex2 < index) {
med2 = i;
break;
}
}
return [min, max, sum / totalCount, (med1 + med2) / 2, mod];
};