我很困惑,爲什麼以下將無法工作。Delete_if通過字符串和數字的數組,重構
def array_mod(source_array, letter_to_delete)
source_array.delete_if {|x|
String===x && x.include?letter_to_delete }
end
基本上我具有接受一個數組,其中,用於測試目的將有兩個字符串和數字的功能。第二個參數是一個字母。該函數應該迭代數組,跳過Fixnum值,以及delete_if元素,這些元素是a)字符串和b)包含違規字母。我已經創建了這個功能,但我試圖重構它,使其更專業。謝謝你幫助我變得更好!
def array_mod(source_array, letter_to_delete)
return source_array.delete_if do |x|
if x.is_a?(Fixnum) ==true
next
else
x.include?letter_to_delete
end
end
end
我不懂行'如果x.is_a(Fixnum對象)==真'?。如果我是你,我會這樣做,而不是:'if(x.is_a?(Fixnum)== true)== true'。只是要確定。呵呵.. JK。你可以把它留到'如果x.is_a?(Fixnum)'。 – Adrian 2014-08-30 03:32:58