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 に答える