Note that there are some explanatory texts on larger screens.

plurals
  1. PORuby Nested Loop
    primarykey
    data
    text
    <p>I have a nested loop2(check2) in loop1(check1) but it seems that nested loop2(check2) only runs once.</p> <p>Both loops contain the same array. This script is used to check for a duplicate id in check1.</p> <pre><code>check1=["0", "0", "0", "1", "1", "2", "3", "4", "5", "100", "4294967294", "9", "11", "6", "200", "7", "201", "811", "202", "204", "3000", "205", "3001", "3001", "3001"] check2 =["0", "0", "0", "1", "1", "2", "3", "4", "5", "100", "4294967294", "9", "11", "6", "200", "7", "201", "811", "202", "204", "3000", "205", "3001", "3001", "3001"] </code></pre> <p>Code:</p> <pre><code>check1.each do |check1| counter=0 puts "checking against:"+check1.to_s check2.each do |check2| puts "checking:"+check1.to_s+"|"+check2.to_s if check1 == check2 counter += 1 end end if counter &gt; 1 dupUID &lt;&lt; check1 end end </code></pre> <p>The result:</p> <pre><code>checking against:0 &lt;- checking the 1st element in check1 checking:0|0 checking:0|0 checking:0|0 checking:0|1 checking:0|1 checking:0|2 checking:0|3 checking:0|4 checking:0|5 checking:0|100 checking:0|4294967294 checking:0|9 checking:0|11 checking:0|6 checking:0|200 checking:0|7 checking:0|201 checking:0|811 checking:0|202 checking:0|204 checking:0|3000 checking:0|205 checking:0|3001 checking:0|3001 checking:0|3001 checking against:0&lt;- checking the 2nd element in check1 checking:0|3001 &lt;- nested loop2(check2) is not looping again on the 2nd element of loop 1 checking against:0 checking:0|3001 &lt;- loop2 stops at the last element for the remaining elements in check1 checking against:1 checking:1|3001 checking against:1 checking:1|3001 checking against:2 checking:2|3001 checking against:3 checking:3|3001 checking against:4 checking:4|3001 checking against:5 checking:5|3001 checking against:100 checking:100|3001 checking against:4294967294 checking:4294967294|3001 checking against:9 checking:9|3001 checking against:11 checking:11|3001 checking against:6 checking:6|3001 checking against:200 checking:200|3001 checking against:7 checking:7|3001 checking against:201 checking:201|3001 checking against:811 checking:811|3001 checking against:202 checking:202|3001 checking against:204 checking:204|3001 checking against:3000 checking:3000|3001 checking against:205 checking:205|3001 checking against:3001 checking:3001|3001 checking against:3001 checking:3001|3001 checking against:3001 checking:3001|3001 </code></pre> <p>Can anyone point out my mistake? Thanks a lot. Solved: Thanks to all!</p> <pre><code>check1.each do |ch1| counter=0 check2.each do |ch2| if ch1 == ch2 counter += 1 end end if counter &gt; 1 dupUID &lt;&lt; ch1 end end puts dupUID </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload