Ruby:时间的平均数组

2023-11-23

我的方法中有以下方法Array class:

class Array
  def avg
    if partial_include?(":")
      avg_times
    else
      blank? and 0.0 or (sum.to_f/size).round(2)
    end
  end

  def avg_times
    avg_minutes = self.map do |x|
      hour, minute = x.split(':')
      total_minutes = hour.to_i * 60 + minute.to_i
    end.inject(:+)/size
    "#{avg_minutes/60}:#{avg_minutes%60}"
  end

  def partial_include?(search_term)
    self.each do |e|
      return true if e[search_term]
    end
    return false
  end
end

这对于常规数字数组非常有效,但在某些情况下我可能有一个时间数组。

例如:[18:35, 19:07, 23:09]

无论如何要计算出时间对象数组的平均值?


因此,您需要定义一个函数来计算格式化为字符串的时间平均值。将数据转换为分钟,计算总分钟的平均值,然后返回时间。

我会这样做:

a =  ['18:35', '19:07', '23:09']

def avg_of_times(array_of_time)
  size = array_of_time.size
  avg_minutes = array_of_time.map do |x|
    hour, minute = x.split(':')
    total_minutes = hour.to_i * 60 + minute.to_i
  end.inject(:+)/size
  "#{avg_minutes/60}:#{avg_minutes%60}"
end

p avg_of_times(a) # = > "20:17"

然后,当您调用函数时,您检查数组中的任何/所有项目是否已格式化为时间。也许使用正则表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:时间的平均数组 的相关文章

  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

    使用 AJAX 动态渲染页面以响应提交的表单似乎很常见 其他类似的问题都没有集中于如何以一般方式做到这一点 我能找到的关于这个主题的最好的博客文章在这里 http www gotealeaf com blog the detailed gu
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • ruby 正则表达式匹配模式的多次出现

    我正在寻找构建一个 ruby 正则表达式来匹配模式的多次出现并将它们返回到数组中 模式很简单 即 两个左括号 一个或多个字符 后跟两个右括号 这就是我所做的 str Some random text lead first name and
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • 存根和 rspec 旧语法的问题

    我正在编写一些代码并使用 rspec 但收到警告 提示语法已过时 我不太清楚应该如何编写它 it should calculate the value correctly do mock cards Card new clubs 5 Car
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • const 和 constexpr 数组之间的区别

    为什么有区别const and constexpr当与数组一起使用时 int const xs 1 2 3 constexpr int ys 1 2 3 int as xs 0 error int bs ys 0 fine 我希望两者都能x
  • 在java中使用BUBBLE SORT对二维字符串数组进行排序

    类似的问题已经被问过 但从来没有关于二维字符串数组 因此在尝试了很长时间之后我找不到我想要的 我正在尝试使用 BubbleSort 对 java 中的 2D 字符串数组进行排序 作为输入 我收到一个二维字符串数组 一个表 以及您应该排序的
  • 将 NumPy 数组按元素映射到更多维度的数组

    我想要地图anumpy array从 NxM 到 NxMx3 其中三个元素的向量是原始条目的函数 lambda x f1 x f2 x f3 x 然而 像这样的事情numpy vectorize不允许改变尺寸 当然 我可以创建一个零数组并进
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • Shoulda/RSpec 匹配器 - 条件验证

    在我的代码中 我使用 Shoulda 匹配器进行了以下验证 效果很好 it should validate presence of name 在我的模型中 我已将条件添加到验证中 validates presence of name if
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • 什么是适合 Rails 3 的测试框架?

    去年我一直在使用 Ruby On Rails 但是 无法进行单元测试 现在我必须编写单元测试代码 哪个测试框架好 为什么 有这方面的好的教程吗 我的系统配置 Ruby 1 9 2 Rails 3 Ubuntu 10 第一个技巧是 尝试升级到
  • Heroku Rails 应用程序级别不记录日志

    我在 Heroku 上有一个 Rails 应用程序 它没有在应用程序级别进行日志记录 当前版本 红宝石1 9 3 导轨3 1 3 在 config environment development rb 中有以下几行 config logge
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • Watir Webdriver 加载 Chrome 扩展

    我正在尝试使用 Watir 加载 chrome 扩展 但遇到了问题 我发现这个相关问题 能够启动带有 watir webdriver 加载扩展的 chrome https stackoverflow com questions 125867

随机推荐

  • 在引用限定符上重载成员函数的用例是什么?

    C 11 使得基于引用限定符重载成员函数成为可能 class Foo public void f for when this is an lvalue void f for when this is an rvalue Foo obj ob
  • 使用 jQuery 制作动画时失去悬停(不移动鼠标)

    我有这行缩略图 我正在使用 jQuery 对其进行动画处理 每个缩略图都有一个悬停和活动类 它们工作正常 但是当我对列表进行动画处理时 鼠标光标下的新缩略图不应用悬停 每次点击后我都必须稍微移动鼠标吗 这有点难以解释 我在这里做了一个小提琴
  • synaptic js lstm rnn 算法的简单示例

    没有一个真是太疯狂了非常简单LSTM RNN 预测时间序列数据的示例 https github com cazala synaptic https github com cazala synaptic wiki Architect lstm
  • Android(三星 S4)HTML5 视频暂停

    我正在使用 Android Webview 播放 html5 视频 包括 Youtube 视频 我自己的标签和 Youtube 嵌入的 iFrame 我在使用 Samsung Galaxy S4 时遇到了问题 具体情况如下 播放视频 视频播
  • android sqlite检查是否插入新值

    我正在使用 sqlite 我成功创建了数据库和表 我还编写了可以在表中插入新值的代码 我的代码工作完美 但现在我想显示例如 如果插入新值则显示 toast 消息 否则在 toast 或其他内容中显示错误消息 这是我插入表的源代码 publi
  • 调试asp.net突然停止

    我有一个奇怪的错误 我正在调试一个 asp net 站点 突然它停止了 Visual Studio 保持调试模式 我的 Web 应用程序保持正常运行 我发现this发布 但我不认为后台线程导致了这个问题 代码周围甚至有一个 try catc
  • 查找给定素数之后的 n 个素数,而不使用任何检查素数的函数

    如何编写一个程序来查找给定数字后面的n个素数 例如100 后的前 10 个素数 或 1000 后的前 25 个素数 编辑 下面是我尝试过的 我以这种方式获得输出 但是我们可以在不使用任何素性测试函数的情况下做到这一点吗 include
  • jQuery DataTables 按 2 列排序

    我在用jQuery 数据表为我的一张桌子设计样式并提供功能 My Goal 根据资金类型是否活跃进行排序 正如您所看到的 这就是它目前正在做的事情 现在 我想订购Funding按字母顺序排列 所以我想要的结果应该是 Funding One
  • 为什么我每次使用 mingw gcc4.8.1 运行 std::random_device 都会得到相同的序列?

    我使用以下代码来测试C
  • ASP.NET Core Identity 模拟特定用户

    假设我有以下角色 Admin User 我希望管理员角色用用户角色模拟特定用户帐户 但不知道该特定用户帐户的密码 管理员应该能够模拟应用程序中的任何用户 并能够以用户本人的身份浏览应用程序 我找到了一个链接这实际上是在 ASP NET MV
  • 使用 javascript 复制到剪贴板以获取phonegap

    我正在为phonegap 平台使用javascript mobile jquery 接口开发一个应用程序 现在我在网上看到了很多尝试复制到剪贴板的例子 不幸的是它们都不适合我 我对浏览器中的功能不感兴趣 只要它在通过电话间隙转换后能够工作
  • 尝试使用网络摄像头 python opencv 捕获视频时 gstreamer 出现严重错误

    我正在尝试使用 opencv 和 python 通过简单的代码通过网络摄像头拍摄视频 import numpy as np import cv2 cap cv2 VideoCapture 0 print cap isOpened if ca
  • 在 React-Chartjs-2 框的圆环图中添加文本以做出反应

    我创建了一个圆环图 它可以正常工作 但现在我需要在其中心显示数字 45 例如 我应该在哪里指定要显示的文本和坐标 在图表的选项中 我正在使用反应组件 class DoughnutChart extends React Component r
  • OS X 卸载已安装的 distutils 项目

    我在 El Capitan 上 我想用 pip 安装 numpy 但是我收到以下错误 Detected a distutils installed project numpy which we cannot uninstall The me
  • 如何将 :since 与 CompUnit 一起使用

    我试图通过使用 CompUnit 类集预编译 POD6 来创建 POD6 缓存 我可以创建 存储和检索 pod 如下所示 use v6 c use nqp my precomp store CompUnit PrecompilationSt
  • wpf listview拖动选择多个项目

    只是想知道是否有人知道如何做到这一点 我想让用户通过单击并拖动鼠标来选择多个项目 不松开单击 假设用户单击第 1 项 然后向下拖动到第 10 项 项目 1 到 10 应该被选中 就像他单击项目 1 然后按住 Shift 键并单击项目 10
  • 如何快速更改颜色字典中图像中的像素?

    我有一个图像 我想从颜色图中更改图像中的所有颜色 例如 10 20 212 60 40 112 目前 我正在读取图像 OpenCV 然后迭代图像数组并更改每个像素 但这非常慢 有什么办法可以让我做得更快吗 我对这个问题提供两个答案 这个答案
  • PHP获取真实IP(代理检测)

    我确实可以跟踪用户的 真实 IP 如果他有一个发送真实 IP 标头的代理 是否有更好的解决方案 甚至更多标头 由于这个函数在脚本中经常使用 所以它必须非常快 而且它似乎不在那个星座中 我提出了一些建议 但无法实现 将标头按最 野外 使用的顺
  • Python re:在变量中存储多个匹配项

    我想匹配字符串的不同部分并将它们存储在单独的变量中以供以后使用 例如 string bunch oranges bananas apples rxp a z var1 var2 var3 这样我就有了 var1 oranges var2 b
  • Ruby:时间的平均数组

    我的方法中有以下方法Array class class Array def avg if partial include avg times else blank and 0 0 or sum to f size round 2 end e