我有一个循环,我在其中将循环的结果附加到一个数组中。代码是这样的
urls = []
series_id = [100,200,300,400]
series_id.each do |id|
result_urls += iterate_id_and_get_urls(id)
end
def iterate_id_and_get_urls(id)
#do something with id and maps it and returns its url which would result in an array
#return that url array
end
但 iterate_id_and_get_urls(id) 有时也可以返回 nil,这将导致 nil 被附加到 result_urls 中。我怎样才能避免这种情况。我正在寻找类似下面的内容
result_urls += iterate_id_and_get_urls(id) unless nil?
最佳答案
如何使用 flat_map
:
result_urls = series_id.flat_map { |id| iterate_id_and_get_urls(id) }.compact
甚至:
result_urls = series_id.flat_map { |id| iterate_id_and_get_urls(id) || [] }
关于ruby - 在循环内附加到 ruby 数组时拒绝 nil 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27039948/