2013-11-29 42 views

回答

2

如果你確定一個空數組作爲兩個輸入數組是nil的情況下的結果,那麼你可以如下鞏固它:

(old_duplicate_items.to_a + new_duplicate_items.to_a).map(&:id) 

但這是所有我能看到。

0
all_items = ((old_duplicate_items || []).to_a + (new_duplicate_items || []).to_a).map(&:id) 
+0

我覺得'|| []'操作是不必要的,因爲'.to_a'會將'nil'轉換爲一個空數組,因爲我認爲OP實現了。 –

+0

@PeterAlfvin你說得對。我自己也不確定,所以我只是把它們加進去了。 –

1

您的解決方案看起來不錯。現在,它返回零或一個填充數組。如果它確定返回一個空數組,你可以嘗試:

(old_duplicate_items.to_a + new_duplicate_items.to_a).map &:id 

爲了保持零回報將需要的東西至少是複雜的,你有什麼現在:

(x = old_duplicate_items.to_a + new_duplicate_items.to_a).size > 0 ? x : nil 

或許:

if (x = old_duplicate_items.to_a + new_duplicate_items.to_a).size > 0; x end 
相關問題