2012-06-24 26 views
1

什麼是迭代數組,驗證每個元素然後返回的最佳方法是否該數組在Ruby中有效?喜歡的東西:在Ruby中迭代數組並驗證元素

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

我覺得這是上面這種方法有很多代碼。

回答

4

使用all?,這將返回true只有當塊true所有元素。

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

Yaaarrr,它是! – odiszapc

+2

如果您發現自己使用'not'或'!'來反轉塊的含義,請使用'none?'而不是'all?'。 –

0
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