[英]Skip first 'each" operator if condition does not exists
我有 2 個操作員,一個在另一個里面
first_array.each do |index, values_1|
second_array.each do |index, values_2|
# --some action goes here--
end
end
如果first_array
為nil
first_array.each do |index, values_1|...
是否有可能首先跳過每個語句( first_array.each do |index, values_1|...
)?
這意味着如果first_array
是nil
,他會省略第一條語句並只執行第二條語句:
second_array.each do |index, values_2|
# --some action goes here--
end
為您的first_array
分配一個默認值,其中包含您希望作為index
和values_1
傳遞的元素。
first_array ||= [[nil, nil]] # assign a default value if falsy
first_array.each do |index, values_1|
# ...
end
以上將執行first_array
的內容一次,如果first_array
為nil
(或false
),則使用給定的默認值。
如果您不想為first_array
分配默認值, first_array
使用(first_array || [[nil, nil]]).each
代替。
感謝您建議Stefan 更新答案以適應問題編輯。
一種不為first_array
分配默認值的first_array
。
final_array = second_array
final_array = first_array.each_with_object([]) do |ele_from_first_array, result|
second_array.each { |ele_from_second_array| result << ele_from_second_array + [ele_from_first_array[1]] }
end if first_array.present?
final_array.each do |sa_i, sa_v, fa_v|
# fa_v will be nil if first_array is nil
# Your code
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.