ruby - 无法从 ruby​​ 数组中删除 NaN

标签 ruby

我有一个值数组

=> [0.0, 4.76, 0.0, Infinity, NaN, 2.63, 0.74, 10.0, NaN, NaN, NaN, NaN, 0.0, NaN, NaN, NaN, NaN, NaN, Infinity, 5.26, NaN, 0.0, NaN, 3.45, 2.5, NaN, 10.0, 0.0, NaN, 2.94, NaN, NaN, 0.0, 2.04, 0.0, 11.11, NaN, NaN, 1.23, NaN, NaN, 11.11, NaN, NaN, NaN, 0.0, 9.68, NaN, NaN, 10.0, 5.0, 3.7, 10.0, Infinity, 0.0, 0.0, 1.41, NaN, 3.45, NaN]

当我运行此脚本以删除 NaN 时,它会删除一些但不是全部 NaN。

  def remove_from_array(numArray)
    numArray.inject(0) do |i|
      if numArray[i].nan?
        numArray.delete_at(i)
      end
      i += 1
    end
   numArray
  end

我错过了什么?

最佳答案

如果您删除一个项目移动到下一个索引,您将向前移动两个项目,因为当前索引处的项目不再存在。

幸运的是,有更好的方法,使用 Array#reject! :

numArray.reject! &:nan?

关于ruby - 无法从 ruby​​ 数组中删除 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774072/

相关文章:

ruby - Sinatra 中使用表单字段的语法错误

ruby-on-rails - 安装eventmachine(1.0.3)时出错,Bundler无法继续

c++ - 尝试使用 SWIG 将 C++ 编译为 Ruby 时没有这样的文件或目录 "ruby/config.h"

javascript - 用 rails 配置 Angular 材

ruby-on-rails - has_many :through and collection_select rails form

ruby-on-rails - rails : How to insert a text_field without a form just to test the layout?

ruby-on-rails - 使用 Active Merchant 和 PayPal 时出现 SSL 错误

ruby-on-rails - 使用 CanCan 和 Twitter Bootstrap 设计的 Rails 教程

ruby - Ruby 有 `Pair` 数据类型吗?

Javascript - 分解具有多次重复js block 的代码