0

如何将所有这些 OR 语句转换为通过数组或迭代器完成的操作?

这是长而不优雅的 OR 链:

type = "Open top" if cargo_operation_container_shifting[12] == 1 or cargo_operation_conatiner_shifting[16] ==1 or cargo_operations_container_shifting[99] == 1

(这是一个简短的例子)

到目前为止,这是我在将其制成数组方面所取得的进展:

open_top_array  = [12, 16, 99]
type = "Open top" if open_top_array.each { |n| cargo_operation_container_shifting[n] == 1 }
4

3 回答 3

2

你的any?方法:

open_top_array  = [12, 16, 99]
type = "Open top" if open_top_array.any?{ |n| cargo_operation_container_shifting[n] == 1 }
于 2012-11-12T21:11:21.783 回答
1
type = 'Open top' if [12, 16, 99].any? do |n| 
  cargo_operation_container_shifting[n] == 1
end
于 2012-11-12T21:11:25.633 回答
0

使用values_at

type = "Open top" if cargo_operation_container_shifting.values_at(12,16,99).any?{|v| v == 1}
于 2012-11-12T21:22:33.103 回答