简单 Ruby 流行音乐不起作用

Simple Ruby pop not working

这应该反转字符串。我不确定为什么我的迭代器 i 在 10 处停止。这是代码 -

def word_reverser_pop(sent)
   arr = Array.new()
   arr = sent.split("")
   reverse = Array.new(arr.length)
   i = 0
   p arr.length
   while i < arr.length 
       reverse.unshift(arr.pop)
       i += 1
   end
   return reverse
end

p word_reverser_pop("This is another test")

输出:

20

["o", "t", "h", "e", "r", " ", "t", "e", "s", "t", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]

Array#pop 从数组中删除一个对象。这也意味着它的长度减少 1。在 while 循环之前将它分配给一个变量并使用该新变量而不是每次迭代都调用 Array#length