2017-11-17 4 views

答えて

1
a = [6, 7, 8, 9, 10] 
b = [1, 2, 3, 4, 5] 

c = a.zip(b).map { |e| e.reduce :/ } 
#⇒ [ 
# [0] 6, 
# [1] 3, 
# [2] 2, 
# [3] 2, 
# [4] 2 
# ] 

Array#zip各要素が(2個のアイテムの配列は、zip形式)Integer#/で還元されて一緒にした後、アレイをジッパー。

+1

なぜ不幸な顔ですか? :) –

+0

は '.map {| e | e.reduce:/} '.map {| a、b |より良い(より速く、よりスマートな) a/b} '? – axiac

+0

@axiacいいえ、私の謙虚な意見では、より明示的です。その意図はより明確です。 – mudasobwa

1

私はカップルの選択肢mudasobwaの郵便番号/マップソリューションを好きですが、ここにある:配列が同じ長さであることが保証されていない場合は特に

a = [6, 7, 8, 9, 10] 
b = [1, 2, 3, 4, 5] 

c = Array.new(a.size) { |i| a[i]/b[i] } 
c = a.map.with_index { |x, i| x/b[i] } 

を、私はArray.newソリューションを好むかもしれません、境界を超えないように簡単に確認できるからです。

c = Array.new([a.size, b.size].min) { |i| a[i]/b[i] } 
関連する問題