From: Rg Rg Date: 2008-05-19T06:56:55+09:00 Subject: Re: Array.sort with bignum fails? Sebastian Hungerecker wrote: > Rg Rg wrote: >> @f.each do |linea| >> cod, desc = linea.chomp.split(/,/) >> @array1[i] = [ cod.strip.to_i ] >> i = i+1 >> end >> @asort1 = @array1.sort > > An equivalent piece of code that does the same: > @array1 = @f.map do |linea| > [ linea.to_i ] > end > @asort1 = @array1.sort > > String#to_i ignores whitespace at the beginning (so you don't need > strip) and > will stop at the first non digit (so you don't have to remove what comes > after the comma - it will just be ignored). > Ok > Though I wonder what the purpose of the @array1 variable is and whether > it is > intended that @array1 as well as @asort1 only contain one-element > arrays. > In case @array1 has no purpose (other than holding the values to be > sorted > until they are sorted) and the one-element arrays are not wanted, this > solution would work: > @asort1 = @f.map {|line| line.to_i}.sort > I have arrays into @array2 @array2[0] = [ 25977, "string1", "string2" ] @array2[1] = [ 36000, "string3", "string4" ] @array2[ ..... My objective is to sort @array2 by numeric code and make a binary search. Sort it's ok, and for binary search I use gems --> "bsearch". "bsearch" with simple array it's ok, but array into array dont't work. This is because I make @array1 with one element. Although surely there is some other better form. > > HTH, > Sebastian -- Posted via http://www.ruby-forum.com/.