【问题标题】:Iterate an array and validate elements in Ruby在 Ruby 中迭代数组并验证元素
【发布时间】:2012-06-24 23:20:23
【问题描述】:

迭代数组、验证每个元素然后返回该数组在 Ruby 中是否有效的最佳方法是什么?比如:

def arr_valid?(arr)
  result = true
  arr.each do |element|
    result = false if
       # validate element with some requirments
    end
  end
  result
end

我认为上面的这种方法有很多代码。

【问题讨论】:

    标签: ruby arrays


    【解决方案1】:

    使用all?,仅当所有元素的块为true 时才会返回true

    def arr_valid?(arr)
      arr.all? do |element|
        # validate element with some requirments
      end
    end
    

    【讨论】:

    • 如果您发现自己使用not! 来反转块的含义,请使用none? 而不是all?
    【解决方案2】:
    def arr_valid?(arr)
      # there can't be Fixnums
      !arr.map {|v| v.is_a? Fixnum}.reduce {|a,b| a||b}
    end
    
    puts arr_valid? [1, 2, 3, 4] # >> false
    
    puts arr_valid? ['1', '2', '3'] # >> true
    

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 1970-01-01
      • 2017-01-31
      • 2020-06-09
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多