From: "Wesley J. Landaker" Date: 2003-08-29T22:55:25+09:00 Subject: Re: multiply all array with array Apparently, ibotty recently wrote: > before i spent to many words describing something so simple: > > say, i have: > a = [1,2,3] and b = [4,5,6] > and i want to get another array, with c[ix] = a[ix] * b[ix]. > (i want to get c = [4,10,18]) > > is there a builtin function in array.rb (that i have missed). > > atm, i use a block to traverse thru every single element, but this still > makes one big or 2 small lines. > (e. g.: c =[]; a.each_with_index{ |ix| c[ix] = a[ix] * b[ix] } ) > > this should be way more elegant ;) I don't know if this is more elegant to you or not, but here is another way: c = a.zip(b).map {|x| x[0] * x[1]} Wes