Ruby:数组的Shuffle索引

时间:2014-08-10 20:50:27

标签: ruby arrays

我有一个正在运行的数组.shuffle! on,但它只是改变数组的顺序,而不是索引。见例:

arr = [3,5,7,8,2]
puts arr[0] => 3
arr.shuffle! => [5,2,8,3,7] #you would think this array is shuffled, however...
puts arr[0] => 3   

尽管数组中的位置不同,索引仍指向该数字。任何人都知道如何改组和数组,以便索引指向不同的值?

2 个答案:

答案 0 :(得分:1)

你的输入绝对不应该导致输出 - 当我输入你在上面的irb会话中键入的内容时,随机播放!按预期工作。正在寻找解释:你肯定是arr.shuffle!而不只是arr.shuffle吗?

(如果您已经知道这一点,请忽略)。感叹号表示该方法更改了一些已存在的对象,而不是创建新对象并返回它。因此,如果您键入了arr.shuffle,则上面的输出会有意义。

答案 1 :(得分:0)

没关系这个问题。见情况评论。