On Thu, Jul 11, 2013 at 9:34 AM, stefan heinrich <lists / ruby-forum.com>wrote:

> Hi,
>
> > Why are the elements in the arrays not numbers?  It looks like you
> > rather
> > want to work with numbers (Fixnum) here.
>
> It's not only numbers. In some cases there are strings.
>
>
> > Can you show us what's in data?  Please make sure to present complete
> > examples, otherwise it's difficult to come up with answers - and to
> > follow
> > the discussion as well.
>
> ok sorry...
> my code to read out the tablewidget and create the array.
>
>     array = Array.new
>
>     for i in 0..rowCount - 1
>       tmp = Array.new
>       tmp << @tableWidget.item(i, 1).text.to_a
>       tmp << @tableWidget.item(i, 0).text.to_a
>       tmp = tmp[0] + tmp[1]
>
>       array << tmp
>     end
>

You can make your life a tad easier by not creating all those one element
arrays with the #to_a call:

array = row_count.times.map do |i|
  [1, 0].map! {|idx| @table_widget.item(i, idx).text}
end

Note the different spelling: in Ruby we use CamelCase only for classes and
modules and snake_case for the rest.


>     array.group_by {|s,i| s}
>

This line does nothing.  More precisely: it creates a Hash and then
immediately forgets it.


>     array= array.group_by {|s,i| s}.each {|k,v| v.map! {|s,i| i}}
>
> The 2d array looks like this after grouping
>
> {"I OFF"=>["a8", "1e"], "E OFF"=>["98", "a0"], "Emphasized ON"=>["db"],
> "I ON"=>["99"]}
>
> It seems like after using grouping by it is not an array anymore. I use
> array[0] and get a nil. How can I take only the values. I would like to
> combine all combinations only I with E and E with I. It is not working.
>

Reading the documentation sometimes really helps. :-)
http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-group_by


> Cheers

robert


-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/