我需要迭代一个数组,设置一个属性,然后返回修改过的对象。
显然,map
可以像这样使用:
items.map do |item|
item.foo = bar
item
end
但这种简单的操作看起来很笨重。
使用select
要简单得多。
items.select { |item| item.foo = bar }
但是,我只使用select
来测试条件。在这种情况下,在迭代期间没有真正测试条件,但在成功设置属性后它仍然返回true。
这是使用select
的可接受方式还是黑客攻击?