我试图制作一种方法来过滤包含正整数和字符串的数组,而只留下整数,但是很奇怪,我的代码无法正常工作。
def filter_list(l)
l.map { |items| items.is_a?(Integer) ? items : l.delete(items) }
end
filter_list([1,2,'a','b'])
Run Code Online (Sandbox Code Playgroud)
从理论上讲,我的代码行得通,因为如果我替换items并l.delete(items)使用单词“ true”和“ false”替换整数和字符串,则返回正确
[true, true, false, false]
Run Code Online (Sandbox Code Playgroud)
但是,保持items : l.delete(items)它还给我
[1, 2, "a"] or sometimes [1, 2, "b"]
Run Code Online (Sandbox Code Playgroud)
因此只删除了一个。如何更改我的方法以仅返回整数?