我有两个任务数组 - 创建和分配。
我想从创建的任务数组中删除所有分配的任务。
这是我的工作代码,但很混乱:
@assigned_tasks = @user.assigned_tasks
@created_tasks = @user.created_tasks
#Do not show created tasks assigned to self
@created_not_doing_tasks = Array.new
@created_tasks.each do |task|
unless @assigned_tasks.include?(task)
@created_not_doing_tasks << task
end
end
我确信有更好的方法。它是什么?
谢谢 :-)
您可以在 Ruby 中对数组进行减法:
[1,2,3,4,5] - [1,3,4] #=> [2,5]
ary - other_ary → new_ary 数组差异
返回一个新数组,它是原始数组的副本,删除任何
也出现在 other_ary 中的项目。该订单保留自
原始数组。
它使用元素的哈希值和 eql 来比较元素?提高效率的方法。
[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]
如果你需要
类似集合的行为,请参阅库类 Set。
See the Array http://ruby-doc.org/core/classes/Array.html#M002211文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)