我试图对数组中的项目进行排序,但它会不断打印出不在数组中的项目。
def alphabetize(arr, rev=false)
arr.sort!
if rev == true
puts arr.reverse!
else
puts arr
end
end
numbers = [2, 5, 3, 16, 0, 322, -5]
puts alphabetize(numbers, true)
我希望输出是代码的第一行,但是它将输出三行。
[322, 16, 5, 3, 2, 0, -5]
34
["ants", "bees", "cockroaches"]
答案 0 :(得分:0)
尝试从代码中删除看跌期权。
def alphabetize(arr, rev=false)
arr.sort!
if rev == true
arr.reverse!
else
arr
end
end
并从irb控制台运行:
irb
输出
2.3.4 :001 > def alphabetize(arr, rev=false)
2.3.4 :002?> arr.sort!
2.3.4 :003?> if rev == true
2.3.4 :004?> arr.reverse!
2.3.4 :005?> else
2.3.4 :006 > arr
2.3.4 :007?> end
2.3.4 :008?> end
=> :alphabetize
2.3.4 :009 > numbers = [2, 5, 3, 16, 0, 322, -5]
=> [2, 5, 3, 16, 0, 322, -5]
2.3.4 :010 > alphabetize(numbers, true)
=> [322, 16, 5, 3, 2, 0, -5]
2.3.4 :011 > animals = ["bees", "cockroaches", "ants"]
=> ["bees", "cockroaches", "ants"]
2.3.4 :012 > alphabetize(animals)
=> ["ants", "bees", "cockroaches"]
有预期的输出吗?
答案 1 :(得分:0)
嗨,海伦,我想我找到了问题, 我认为它来自Codeacademy 如果您这样写,它将返回成功
TL; DR
错误的代码
def alphabetize(arr, rev=false)
rev ? arr.reverse! : arr.sort!
end
正确的代码
def alphabetize(arr, rev=false)
rev ? arr.reverse! : arr.sort!
end
numbers = [5, 1, 3, 8]
puts alphabetize(numbers)