7

Rubyにはいくつかの配列があります(この場合は4つの配列があります)

array1 = [{key="label1.1", value="label1.2"}, {key="label1.2", value="label1.2"}]
array2 = [{key="label2.1", value="label2.2"}]

array3 = []
array4 = nil
result_array = array1 | array2 | array3 | array4 

各配列は他の配列と同じ構造を持っています:それはハッシュ値です。それがゼロまたは空の場合、その中の要素の数-それは不明です。

だから私は見る必要result_array があります:

[{key="label1.1", value="label1.2"}, {key="label1.2", value="label1.2"}, {key="label2.1", value="label2.2"}]

array4ただし、はに等しいため、そのコードは例外を引き起こしますnil

Ruby、配列がnilでも空でもないかどうかを確認し、空でない場合は、それをマージする方法はありresult_arrayますか?

4

2 に答える 2

16
[array1, array2, array3, array4].compact.reduce([], :|)
于 2012-09-01T14:55:03.287 に答える
4

カーネルはArray、配列をそのままにして、nilを空の配列に変換するというメソッドを定義します。

array1 = [{:key => "label1.1", :value => "label1.2"}, {:key =>"label1.2", :value => "label1.2"}]
array2 = [{:key => "label2.1", :value => "label2.2"}]

array3 = []
array4 = nil
result_array = Array(array1) | Array(array2) | Array(array3) | Array(array4)
result_array # => [{:key=>"label1.1", :value=>"label1.2"}, {:key=>"label1.2", :value=>"label1.2"}, {:key=>"label2.1", :value=>"label2.2"}]
于 2012-09-01T14:55:56.427 に答える