JavaScript 中的数组平均值和中位数

Posted by cl9000 on May 25, 2020

达到完美境界并不是无以复加,而是无可去除。——<安托万·德·圣·埃克苏佩里>

示例数组

1
let values = [2, 56, 3, 41, 0, 4, 100, 23];

平均值

要获得平均值,我们必须对数字求和,然后除以值的数量。步骤如下:

  • 获取数组长度
  • 总结价值
  • 得到平均值 (sum/length)
1
2
3
4
let values = [2, 56, 3, 41, 0, 4, 100, 23];
let sum = values.reduce((previous, current) => current += previous);
let avg = sum / values.length;
// avg = 28

或者:

1
2
3
4
5
let values = [2, 56, 3, 41, 0, 4, 100, 23];
let count = values.length;
values = values.reduce((previous, current) => current += previous);
values /= count;
// avg = 28

中位数

现在,要获取中位数步骤为:

  • 对数组排序
  • 得到中间值的等值均值
1
2
3
4
5
6
let values = [2, 56, 3, 41, 0, 4, 100, 23];
values.sort((a, b) => a - b);
let lowMiddle = Math.floor((values.length - 1) / 2);
let highMiddle = Math.ceil((values.length - 1) / 2);
let median = (values[lowMiddle] + values[highMiddle]) / 2;
// median = 13,5

使用按位运算符:

1
2
3
4
let values = [2, 56, 3, 41, 0, 4, 100, 23];
values.sort((a, b) => a - b);
let median = (values[(values.length - 1) >> 1] + values[values.length >> 1]) / 2
// median = 13,5

参考

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!