2011-09-11 2 views
1

は、私はそうのような配列を持っていると言う:Rubyでは、配列をループしている間に項目をスキップしますか?

[ 
    {"timestamp"=>"1", "count"=>4488.0}, 
    {"timestamp"=>"2", "count"=>4622.0}, 
    {"timestamp"=>"3", "count"=>4655.0}, 
    {"timestamp"=>"4", "count"=>4533.0}, 
    {"timestamp"=>"5", "count"=>4439.0}, 
    {"timestamp"=>"6", "count"=>4468.0}, 
    {"timestamp"=>"7", "count"=>4419.0}, 
    {"timestamp"=>"8", "count"=>4430.0}, 
    {"timestamp"=>"9", "count"=>4429.0}, 
    {"timestamp"=>"10", "count"=>4502.0}, 
    {"timestamp"=>"12", "count"=>4497.0}, 
    {"timestamp"=>"13", "count"=>4468.0}, 
    {"timestamp"=>"14", "count"=>4510.0}, 
    {"timestamp"=>"15", "count"=>4547.0}, 
    {"timestamp"=>"16", "count"=>4471.0}, 
    {"timestamp"=>"17", "count"=>4501.0}, 
    {"timestamp"=>"18", "count"=>4451.0}, 
    {"timestamp"=>"19", "count"=>4453.0}, 
    {"timestamp"=>"20", "count"=>4593.0}, 
    {"timestamp"=>"21", "count"=>4540.0}, 
    {"timestamp"=>"22", "count"=>4516.0}, 
    {"timestamp"=>"23", "count"=>4494.0} 
] 

そして、私はそれが新しい配列内のすべてのxアイテムを置くことをループにしたいので、などは、私はmy_arr.skip(5)のような引数の何かを取ったりする方法を書きたいと言います何か?私はここでちょっと立ち往生し、進める方法を知らない。どんな助けでも大変に感謝します。

答えて

6

Enumerable#each_sliceは、あなたが望むものはおそらくです:

# it returns an enumerator, so you could look over it and do whatever 
> [1, 2, 3, 4].each_slice(2) {|s| puts s.inspect } 
[1, 2] 
[3, 4] 

# or if you're just looking to group into smaller arrays, you could just... 
> [1, 2, 3, 4].each_slice(2).to_a 
[[1, 2], [3, 4]] 
1

あなたが最初など5つの項目の配列、第2次5つの項目の配列、で終わるしたい場合、あなたはEnumerable#each_slice

をしたいです
関連する問題