Hi Everyone, Can anyone pls tell me how to use 2 variables (objects) in FOR Loop? Normally in most programming languages it will be like, for(i=1,j=1;i<=5;i++,j++) Whats the equivalent for above statement in Rails? i have two objects with same number of fields but different values. @original_object & @modified_object Thanks in Advance, Regards, VASANTH -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi -- On Tue, 11 Mar 2008, Vasanthakumar Csk wrote:> > Hi Everyone, > Can anyone pls tell me how to use 2 variables (objects) in FOR Loop? > Normally in most programming languages it will be like, > for(i=1,j=1;i<=5;i++,j++) > Whats the equivalent for above statement in Rails? i have two objects > with same number of fields but different values. > @original_object & @modified_objectThere are several possibilities, depending on exactly what you want to do (which I''m not totally clear on). One would be: fields.size.times do |i| j = i ... end though I suspect that if you really just need an index, you wouldn''t need two variables. You could also look into Array#zip. Beyond that I''d need to know more about what you''re trying to do and how your data are organized. David -- Upcoming Rails training from David A. Black and Ruby Power and Light: ADVANCING WITH RAILS, April 14-17 2008, New York City CORE RAILS, June 24-27 2008, London (Skills Matter) See http://www.rubypal.com for details. Berlin dates coming soon! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Vasanthakumar Csk wrote:> for(i=1,j=1;i<=5;i++,j++) > Whats the equivalent for above statement in Rails? > > Thanks in Advance, > > Regards, > VASANTHThere are many types of loops. For the one in your example you could say: until 1 <= 5 do ..... ..... end or 1.upto(5) do |x| ........ ........ end To use two variables you are going to have to use two loops - there is no way that I know of to write a single loops that counts double. It also depends on what you are counting? If you have a list of stuff then the loop could be written as: stuff.each do |x| ......... ......... end What are you trying to do with the @modified and @oringinal objects? Are you trying to compare their fields? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi David and Nantz, this is what i am trying to do @window_data_original = Window.getGeneralData(building_id) @window_data_modified = ScopeOfWorkAction.getRetrofittedData(building_id,retrofit_cost_data.module_id,Window.column_names,window_data_original) So after the above two statments, i will have two different objects with same fields but different values. Now, these are multi-dimensional array objects (since a building can have any number of windows). My project is a scientific project, where i need to calculate some parameter''s like below (just giving a sample): for window_data_original in @window_data_original calculation_value1 = window_data_original.size - window_data_modified.size total = total + calculation_value1 end Hope, i am clear this time. Please help me. Thanks in advance. Regards, VASANTH -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi -- On Tue, 11 Mar 2008, Vasanthakumar Csk wrote:> > Hi David and Nantz, > this is what i am trying to do > @window_data_original = Window.getGeneralData(building_id) > @window_data_modified > ScopeOfWorkAction.getRetrofittedData(building_id,retrofit_cost_data.module_id,Window.column_names,window_data_original) > So after the above two statments, i will have two different objects with > same fields but different values. > Now, these are multi-dimensional array objects (since a building can > have any number of windows). My project is a scientific project, where i > need to > calculate some parameter''s like below (just giving a sample): > > for window_data_original in @window_data_originalThat''s some weird loop variable naming :-)> calculation_value1 = window_data_original.size - > window_data_modified.size > total = total + calculation_value1 > endIf it''s two arrays them you can zip them, or just use an index and fish things out: @w_d_orig.each_with_index do |wdo,i| wdm = @w_d_modified[i] # etc. end (if I''m understanding correctly). David -- Upcoming Rails training from David A. Black and Ruby Power and Light: ADVANCING WITH RAILS, April 14-17 2008, New York City CORE RAILS, June 24-27 2008, London (Skills Matter) See http://www.rubypal.com for details. Berlin dates coming soon! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi, Hope this would be clear, for employee in @employees calculation_value1 = employee.size - employee.size # first is original value (employee.size) and second is modified value (employee.size) total = total + calculation_value1 end Here, @employees is an two-dimensional array of 50 employees & so the for loop will run for 50 times. Now, i want to iterate through both arrays simultaneously so that i will get the final result. eg:- (consider 5th employee) calculation_value1 = original_employee[5].size - modified_employee[5].size Hope you understand my problem and help me out of this. Thanks in advance. Regards, Vasanth -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
CSK Vasanth wrote:> for employee in @employees > calculation_value1 = employee.size - employee.size > # first is original value (employee.size) and second is modified > value (employee.size) > total = total + calculation_value1 > endCombining that with:> eg:- (consider 5th employee) > calculation_value1 = original_employee[5].size - > modified_employee[5].sizeAnd the examples everyone has provided, you have choices like: @orig_employees.each_with_index |orig_employee, i| mod_employee = @mod_employees[i] calc_val1 = orig_employee.size - mod_employee.size total = total + calc_val1 end or: (0...@orig_employees.length).each |i| orig_employee = @orig_employees[i] mod_employee = @mod_employees[i] calc_val1 = orig_employee.size - mod_employee.size total = total + calc_val1 end # (yes, that was 3 dots in the range, not 2) or: @orig_employees.length.times |i| orig_employee = @orig_employees[i] mod_employee = @mod_employees[i] calc_val1 = orig_employee.size - mod_employee.size total = total + calc_val1 end There are many ways you can do this using the solutions provided. Note that you *don''t* need 2 indexes, since you say both arrays will be the same length. One index is enough to refer to both arrays. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---