Ruby 向列表中添加项目,同时避免重复项目
我是一名学生。我不仅仅是在寻找答案;我关心逻辑Ruby 向列表中添加项目,同时避免重复项目,ruby,Ruby,我是一名学生。我不仅仅是在寻找答案;我关心逻辑 添加项目方法应该有两个参数。第一个参数是要添加到列表中的项,第二个参数是要添加该项的数组(即列表)。该方法不应添加重复项。例如,您可以从以下内容开始: def add_item!(item, list) end 如果我们只是简单地将项目划入列表,而不必担心重复,我们可以写: def add_item!(item, list) list << item list # this is what we return from the
添加项目代码>方法应该有两个参数。第一个参数是要添加到列表中的项,第二个参数是要添加该项的数组(即列表)。该方法不应添加重复项。例如,您可以从以下内容开始:
def add_item!(item, list)
end
如果我们只是简单地将项目划入列表,而不必担心重复,我们可以写:
def add_item!(item, list)
list << item
list # this is what we return from the method
end
尝试使用include?
方法确定给定项目是否在给定列表中,并完成add\u项目代码>实现
我的尝试是:
def add_item!(item, list)
if list.include?(item)
list.delete(item)
else
list << item
list # this is what we return from the method
end
end
p add_item!("banana", ["orange"])
p add_item!("orange", ["orange"])
def添加项目!(项目、清单)
如果列表。包括?(项目)
列表。删除(项目)
其他的
列出你做错了什么:
如果数组包含该项,则将删除该项,否则将不执行该部分。因此,该项将不被插入,并且该方法返回最后一条语句的返回值,即list.delete(item)
根据,
从self中删除等于obj的所有项目
返回上次删除的项,如果未找到匹配项,则返回nil
您很接近答案:您不需要调用delete,因为这将删除列表中的现有元素。如果列表中包含?返回false,只需将其添加到列表中,如果为true,则不执行任何操作
def add_item!(item, list)
if !list.include?(item)
list << item
end
list # this is what we return from the method
end
def添加项目!(项目、清单)
如果列表。包括?(项目)
列出OP说他不想要解决方案的清单。他想知道他做错了什么。这就是为什么我没有给他答案英雄联盟没关系。。。我仍然能够得到“tomsoft”提供的逻辑,这大大缓解了我的脑动脉瘤!谢谢Santosh和tomsoft!非常感谢你的帮助!
def add_item!(item, list)
if !list.include?(item)
list << item
end
list # this is what we return from the method
end