【发布时间】:2019-10-24 08:42:35
【问题描述】:
这是一个家庭作业问题,所以我在来这里寻求帮助之前尽可能多地解决它。我已经解决了 95%,我只是无法弄清楚最后一位的语法,或者如果它与我现在正在做的不同,我应该使用什么方法。我在网上找不到任何实际上不是我同学的答案的解决方案,我避免点击这些解决方案来查看他们是如何完成问题的。
如果它只有一个元素,我可以不格式化返回字符串,当有两个元素时只有单词'and',当元素超过三个时我可以添加逗号和单词'and'。但是,当数组的元素超过三个时,我似乎无法跳过添加最后一个逗号。
def oxford_comma(array)
if array.length == 2
array.join(" and ")
elsif array.length > 2
array.insert(-2, "and")
array[0..-1].join(", ")
else
array.join
end
end
这是我收到的错误消息:
Failure/Error: expect(oxford_comma(["kiwi", "durian", "starfruit", "mangos", "dragon fruits"])).to eq("kiwi, durian, starfruit, mangos, and dragon fruits")
expected: "kiwi, durian, starfruit, mangos, and dragon fruits"
got: "kiwi, durian, starfruit, mangos, and, dragon fruits"
(compared using ==)
【问题讨论】: