Rubyで2つの配列を同時に反復するにはどうすればよいですか、forループを使用したくありません。たとえば、これは私の配列です=
array 1=["a","b","c","d"]
array 2=[1,2,3,4]
Rubyで2つの配列を同時に反復するにはどうすればよいですか、forループを使用したくありません。たとえば、これは私の配列です=
array 1=["a","b","c","d"]
array 2=[1,2,3,4]
たとえば、次のように zip 関数を使用できます。
array1.zip(array2).each do |array1_var, array2_var|
## whatever you want to do with array_1var and array_2 var
end
使用できます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
zip
それらをまとめて、 を使用してペアを反復処理できますeach
。
array1.zip(array2).each do |pair|
p pair
end
両方の配列が同じサイズの場合、次のことができます。
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
両方の配列が同じサイズであると仮定すると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