4

Rubyで2つの配列を同時に反復するにはどうすればよいですか、forループを使用したくありません。たとえば、これは私の配列です=

array 1=["a","b","c","d"]
array 2=[1,2,3,4]
4

6 に答える 6

8

たとえば、次のように zip 関数を使用できます。

array1.zip(array2).each do |array1_var, array2_var|
 ## whatever you want to do with array_1var and array_2 var 
 end
于 2013-09-28T03:42:31.830 に答える
5

使用できますArray#zip(オプションのブロックを受け入れるeachため、使用する必要はありません):zip

array1 = ["a","b","c","d"]
array2 = [1,2,3,4]

array1.zip(array2) do |a, b|
  p [a,b]
end

または、Array#transpose:

[array1, array2].transpose.each do |a, b|
  p [a,b]
end
于 2013-09-28T03:42:46.227 に答える
1

zipそれらをまとめて、 を使用してペアを反復処理できますeach

array1.zip(array2).each do |pair|
  p pair
end
于 2013-09-28T03:42:14.650 に答える
0

両方の配列が同じサイズの場合、次のことができます。

array1=["a","b","c","d"]
array2=[1,2,3,4]

for i in 0..arr1.length do
 //here you do what you want with array1[i] and array2[i]
end
于 2013-09-28T03:42:48.073 に答える
0

両方の配列が同じサイズであると仮定するとeach_with_index、2 番目の配列のインデックスを使用して、それらを反復処理できます。

array1.each_with_index do |item1, index|
  item2 = array2[index]
  # do something with item1, item2
end

そのようです:

irb(main):007:0> array1.each_with_index do |item1, index|
irb(main):008:1*   item2 = array2[index]
irb(main):009:1>   puts item1, item2
irb(main):010:1> end
a
1
b
2
c
3
d
4
于 2013-09-28T03:44:17.853 に答える