首页 小组 问答 话题 好文 素材 用户 唠叨 我的社区

[教程]数组平均值与中值

风轻yLv.1种子选手
2024-09-12 08:39:06
0
36

下面的例子都基于如下数组:

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

要取得平均值,我们需要将数字求和,然后除以values的数目,步骤如下:

  • 取得数组长度(length)

  • 求和(sum)

  • 取得平均值(sum/length)

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

或者:

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

取得中值的步骤是:

  • 将数组排序

  • 取得中位数

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

或者使用无符号右移操作符:

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 = 23
风轻y
风轻y

40 天前

签名 :   36       0
评论
站长交流