当前位置:首页 > JavaScript

js实现统计

2026-04-06 07:22:24JavaScript

js实现统计的方法

在JavaScript中实现统计功能可以通过多种方式,以下是一些常见的统计方法:

计算平均值

使用数组的reduce方法计算平均值:

const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((sum, num) => sum + num, 0) / numbers.length;
console.log(average); // 输出3

计算中位数

对数组排序后找到中间值:

const median = arr => {
  const sorted = [...arr].sort((a, b) => a - b);
  const middle = Math.floor(sorted.length / 2);
  return sorted.length % 2 === 0 ? 
    (sorted[middle - 1] + sorted[middle]) / 2 : 
    sorted[middle];
};
console.log(median([1, 3, 5, 7])); // 输出4

计算标准差

先计算平均值,再计算方差,最后取平方根:

const stdDev = arr => {
  const avg = arr.reduce((sum, num) => sum + num, 0) / arr.length;
  const variance = arr.reduce((sum, num) => sum + Math.pow(num - avg, 2), 0) / arr.length;
  return Math.sqrt(variance);
};
console.log(stdDev([10, 12, 23, 23, 16])); // 输出约5.69

计算频率分布

使用对象记录每个值的出现次数:

const frequency = arr => {
  return arr.reduce((acc, val) => {
    acc[val] = (acc[val] || 0) + 1;
    return acc;
  }, {});
};
console.log(frequency(['a', 'b', 'a', 'c', 'b', 'a'])); // 输出{a:3, b:2, c:1}

使用统计库

对于更复杂的统计需求,可以使用专门的统计库:

js实现统计

// 使用simple-statistics库
const ss = require('simple-statistics');
console.log(ss.mean([1, 2, 3, 4])); // 输出2.5

注意事项

处理大型数据集时考虑性能问题,可能需要分批处理数据或使用Web Worker。确保数值计算时处理可能的浮点数精度问题。

标签: js
分享给朋友:

相关文章

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…