开发者社区> 问答> 正文

在Ruby中从另一个数组减去一个数组

我有两个任务数组-创建和分配。我想从创建的任务数组中删除所有分配的任务。这是我的工作代码,但很混乱:

@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

展开
收起
保持可爱mmm 2020-02-08 19:25:18 398 0
1 条回答
写回答
取消 提交回答
  • 您可以在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。

    2020-02-08 19:25:28
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载