我有一种方法可以将两个数组一起添加并收集它们的ID。问题是,一个或两个数组可能为空。
这就是我所拥有的:
all_items = old_duplicate_items.to_a + new_duplicate_items.to_a
all_items.map(&:id) unless all_items.blank?
可以改进吗?
答案 0 :(得分:2)
如果两个输入数组都是nil
,那么你可以使用空数组,那么你可以按如下方式合并它:
(old_duplicate_items.to_a + new_duplicate_items.to_a).map(&:id)
但这就是我所能看到的一切。
答案 1 :(得分:1)
你的解决方案看起来很不错。现在,它返回nil或填充的数组。如果可以返回空数组,可以尝试:
(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
答案 2 :(得分:0)
all_items = ((old_duplicate_items || []).to_a + (new_duplicate_items || []).to_a).map(&:id)