返回介绍

averageBy - 根据函数映射每个元素,然后求数组的平均值

发布于 2019-05-30 01:44:42 字数 552 浏览 1075 评论 0 收藏 0

使用提供的函数将每个元素映射到一个值后,返回一个数组的平均值。

使用 Array.map() 将每个元素映射到由 fn 返回的值,Array.reduce() 将每个值累加到累加器,用 0 作为累加器的初始值,再除以数组的 length

const averageBy = (arr, fn) =>
  arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => acc + val, 0) /
  arr.length;
averageBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], o => o.n); // 5
averageBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], 'n'); // 5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文