Ruby数组 – 如何使值保持在nil值之上
发布时间:2020-12-16 21:37:30 所属栏目:百科 来源:网络整理
导读:我正在使用一系列midi音高,看起来像这样…… pitches = [ 60,nil,67,nil] 在这种情况下,音高在索引1,2和3上仍为60. 在指数4之后,投球仍然是67. 如何编写方法来识别先前的非零值? 我目前认为这样做的唯一方法看起来有点笨拙: def pitch_at_step(pitches,ste
我正在使用一系列midi音高,看起来像这样……
pitches = [ 60,nil,67,nil ] 在这种情况下,音高在索引1,2和3上仍为60. 在指数4之后,投球仍然是67. 如何编写方法来识别先前的非零值? 我目前认为这样做的唯一方法看起来有点笨拙: def pitch_at_step(pitches,step) if pitches.any? x = pitches[step] until x != nil index -= 1 x = pitches[step] end x else nil end end 预期输出格式为: pitch_at_step(pitches,0) # 60 pitch_at_step(pitches,2) # 60 pitch_at_step(pitches,4) # 67 pitch_at_step(pitches,8) # 67 这是最好的解决方案吗?是否有更整洁和/或更有效的方式? 解决方法
如果数组不大,你可以使用这样的东西:
pitches[0..index].compact.last 这看起来更整洁,但它不如大数据阵列那么好 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |