我有两个任务数组-创建和分配。我想从创建的任务数组中删除所有分配的任务。这是我的工作代码,但很混乱:
@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
我敢肯定有更好的方法。它是什么?谢谢 :-) 问题来源于stack overflow
您可以在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。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。