George George wrote: > Given an array of strings e.g. > x = ["abc","abcde" "def","xyzwj"] and of different lengths, > how can you efficiently create new arrays of strings which are of the > same length. for example the above array can be transformed into > > x1 = ["abc","def"] > x2 = ["abcde","xyzwj"] > > Thank you. y = {} x.each do |v| y[v.length] || = [] y[v.length] << v end y.values or if you prefer less lines.. x.inject({}) do |h, v| (y[v.length] || = []) << v h end.values -- Posted via http://www.ruby-forum.com/.