0

次のような配列がある場合:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

そして、この任意のインデックス配列に基づいて、その配列のサブセットを選択したいと思います。

[0,1,4,7,8,13,14,15,18,19]

結果は、最初の配列のこのサブセットになります。

[1,2,5,8,9,14,15,16,19,20]

私の質問は、サブセットを取得するために、インデックスの配列と開始配列から単純な関数 (1 行または 2 行) を作成するにはどうすればよいですか?

4

3 に答える 3

3
arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
indexes = [0,1,4,7,8,13,14,15,18,19]

arr.values_at(*indexes) # => [1, 2, 5, 8, 9, 14, 15, 16, 19, 20]
于 2013-04-26T04:46:00.903 に答える
0
arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
index = [0,1,4,7,8,13,14,15,18,19]

arr.each_with_index {|value,index| p value if indexes.include?(index)}
于 2013-04-26T08:32:37.260 に答える