2013-07-25 34 views
-3

我想实现一个使用数组来显示数据的滚动函数。滚动的工作方式是将移位变量从数组长度中减去,然后从开始循环到长度移位。由外部变量限制的红宝石循环

该阵列由子2元素的数组保存用户名和客户端的,我目前的循环,通过

myarray.each do |username, client| 
#do work 
end 

让我的数据怎么可能我遍历数组从长度以减去我当班整数只有循环0..length-shift,同时仍然使用从数组中获取数据的方式。

我可以直接通过myarray[i][0]myarray[i][1]直接循环访问数组,但我试图避免这种情况。

希望这是有道理的。我似乎找不到一种方法可以让我做到这一点。

+1

举一些例子阵和预期输出.. –

+0

我不认为有必要。我只想知道是否有ruby方法可以提供红宝石块来获得我的两个变量,这也允许我定义其迭代限制。 –

+0

需要您使用的代码使其简单... –

回答

1

可能的方式选择

my_array[0..shift_index].each |client, username| 
#do stuff.. 
end 
0

您的阵列中分得一杯羹这可能是用好你的。假设你有一个数组,看起来像这样:

arr = [[1,2,3],[4,5,6]] 

让我可以做这样的事情的阵列中的每个元素:

arr.each_with_index do |element1, index1| 
    arr[index1].each_with_index do |element2,index2| 
    return arr[index1][index2] 
    end 
end 

这将先通过阵列的顶层, (即[1,2,3][4,5,6])。现在我们将通过使用我们给出的index1来遍历下一个数组的每个元素。这就是arr[index1]的来源。所以每次它通过第一维时,它都会遍历这些子数组的元素。然后我们得到子数组中包含的那些元素的索引。

所以输出将是:

arr[0][0] 
arr[0][1] 
arr[0][2] 
arr[1][0] 
arr[1][1] 
arr[1][2] 

这然后由红宝石解释为:

1 
2 
3 
4 
5 
6