当我在包含自定义对象的两个数组上调用
first_array | second_array
时:first_array = [co1, co2, co3]
second_array =[co2, co3, co4]
它返回[co1,co2,co3,co2,co3,co4]
。它不会删除重复项。我尝试在结果上调用uniq
,但也没有起作用。我该怎么办?
更新:
这是自定义对象:
class Task
attr_accessor :status, :description, :priority, :tags
def initiate_task task_line
@status = task_line.split("|")[0]
@description = task_line.split("|")[1]
@priority = task_line.split("|")[2]
@tags = task_line.split("|")[3].split(",")
return self
end
def <=>(another_task)
stat_comp = (@status == another_task.status)
desc_comp = (@description == another_task.description)
prio_comp = (@priority == another_task.priority)
tags_comp = (@tags == another_task.tags)
if(stat_comp&desc_comp&prio_comp&tags_comp) then return 0 end
end
end
当我创建几个任务类型的实例并将它们放入两个不同的数组中,然后尝试在它们上面调用'|'时,什么也不会发生,它只会返回包括第一个和第二个数组元素的数组,而不会删除重复项。
[co1, co2, co3, co2, co3, co4]
是什么? - dax