title: javascript - potential infinite loop when comparing with arguments.length
body: <p>I am trying to write a for-loop that goes trough all the inputs of a function, compares the elements of the inputs, and outputs unique elements (in this case they will always be numbers).</p>
  
  <p>Since this is a <a href="http://www.freecodecamp.com/challenges/sorted-union#?solution=function%20unite%28arr1%2C%20arr2%2C%20arr3%29%20%7B%0A%20%20%2F%2Ffor%20all%20arrays%0A%20%20var%20output%20%3D%20arr1%3B%0A%20%20for%28var%20x%20%3D%200%3B%20x%20%3C%20arguments.length%3B%20x%2B%2B%29%20%7B%0A%20%20%20%20for%28var%20y%20%3D%200%3B%20y%20%3C%20arguments[x].length%3B%20y%2B%2B%29%20%7B%0A%20%20%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20output.length%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20if%28arguments[x][y]%20!%3D%3D%20output[i]%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20output.push%28arguments[x][y]%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20return%20output%3B%0A%7D%0A%0Aunite%28[1%2C%203%2C%202]%2C%20[5%2C%202%2C%201%2C%204]%2C%20[2%2C%201]%29%3B%0A" rel="nofollow">freecodecamp exercise</a>, I get some feedback, and get the following error: <code>Error: potential infinite loop at line 4.</code></p>
  
  <p>If I run the loop, without the infinite loop protection I get out of memory. Can someone point out what I'm doing wrong?</p>
  
  <pre><code>function unite(arr1, arr2, arr3) {
    //for all arrays
    var output = arr1;
    for(var x = 0; x &lt; arguments.length; x++) {
      for(var y = 0; y &lt; arguments[x].length; y++) {
        for(var i = 0; i &lt; output.length; i++) {
          if(arguments[x][y] !== output[i]) {
            output.push(arguments[x][y]);
          }
        }
      }
    }
    return output;
  }
  
  unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
  </code></pre>