> On 2018-Apr-26, at 13:47 , Abdel Latif <mlotfi2...@gmail.com> wrote:
> 
> But [["AB_1020", "AB_950", "AB_50"], ["1000", "570"]] has non numerical 
> values too.
> 
> On Thursday, April 26, 2018 at 1:05:53 PM UTC-4, Walter Lee Davis wrote:
> 
> > On Apr 26, 2018, at 12:12 PM, Abdel Latif <mlotf...@gmail.com <>> wrote: 
> > 
> > Hi, 
> > 
> > I found this code for sorting an array : 
> > 
> > p ["AB_1020", "AB_950", "AB_50", "1000", "570"].partition{|x| x.to_i.zero? 
> > } 
> >       .flat_map{|x| x.sort_by {|x|x[/d+/]}.reverse} 

You're missing that String#[] when given a Regexp returns the substring that 
matches that Regexp.

[1] pry(main)> ["AB_1020", "AB_950", "AB_50",].map {|x| x[/\d+/]}
=> ["1020", "950", "50"]
[2] pry(main)> ["AB_1020", "AB_950", "AB_50",].map {|x| x[/\d+/]}.sort
=> ["1020", "50", "950"]
[3] pry(main)> ["AB_1020", "AB_950", "AB_50",].map {|x| x[/\d+/]}.sort.reverse
=> ["950", "50", "1020"]
[4] pry(main)> ["AB_1020", "AB_950", "AB_50",].map {|x| 
x[/\d+/].to_i}.sort.reverse
=> [1020, 950, 50]
[5] pry(main)> ["AB_1020", "AB_950", "AB_50",].sort_by {|x| x[/\d+/].to_i}
=> ["AB_50", "AB_950", "AB_1020"]

-Rob

> > ouptut 
> > 
> > #⇒ ["AB_50", "AB_950", "AB_1020", "570", "1000"] 
> > 
> > 
> > I know that .partition{|x| x.to_i.zero? } will create an array of arrays : 
> > [["AB_1020", "AB_950", "AB_50"], ["1000", "570"]] 
> > 
> > 
> > But this part .flat_map{|x| x.sort_by {|x|x[/d+/]}.reverse} 
> 
> flat_map: https://apidock.com/ruby/Enumerable/flat_map 
> <https://apidock.com/ruby/Enumerable/flat_map> 
> 
> Then that passes a block, which acts on each member of the Enumerable that 
> called flat_map. That block sorts by the numerical value of x, then reverses. 
> 
> Does that help? 
> 
> Walter 
> 
> > 
> > I could understand it. 
> > 
> > Thanks. 
> > 
> > -- 
> > You received this message because you are subscribed to the Google Groups 
> > "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to rubyonrails-ta...@googlegroups.com <>. 
> > To post to this group, send email to rubyonra...@googlegroups.com <>. 
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/rubyonrails-talk/c8e2dc7d-8501-4df3-b19c-917ebded457f%40googlegroups.com
> >  
> > <https://groups.google.com/d/msgid/rubyonrails-talk/c8e2dc7d-8501-4df3-b19c-917ebded457f%40googlegroups.com>.
> >  
> > For more options, visit https://groups.google.com/d/optout 
> > <https://groups.google.com/d/optout>. 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rubyonrails-talk+unsubscr...@googlegroups.com 
> <mailto:rubyonrails-talk+unsubscr...@googlegroups.com>.
> To post to this group, send email to rubyonrails-talk@googlegroups.com 
> <mailto:rubyonrails-talk@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/f6fa4cc4-37b2-4828-ba1c-f9ac0d780221%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rubyonrails-talk/f6fa4cc4-37b2-4828-ba1c-f9ac0d780221%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/F584BA16-90B8-40DD-8C04-A92CBF336241%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to