title: javascript says two values are not equal when they are (using ===)
body: <p>I want to use JavaScript to determine which class/display color a number of divs(called div1, div2...up through div21) are depending on the values in schedule_array. So if 2 is in schedule_array, I want div2 to be of class clicked and if 3 is not in schedule_array, I want div3 to be of class unclicked. The problem is that my === sign seems to be giving false no matter what for this code:</p>
  
  <pre><code> function setClasses()
   {
       alert("schedule array is "+schedule_array[3]);
  
       for(var k = 1; k&lt;22; k++)
       {
           var name = "div" + k;
           if(contains(schedule_array, k))
           {
               document.getElementById(name).className = "clicked";
           }
           else
           {
               document.getElementById(name).className = "unclicked";
           }
       }
   }
  
   setClasses();
  
  
   function contains(a, obj) {
       //alert(a[3] + "for function contains");
       //alert(a.length);
       for (var i = 0; i &lt; a.length; i++) {
           document.write(a[i] + "=" + obj);
           if (a[i] === obj) {
               document.write("true,,,,,,,,");
               return true;
           }
           else
           {
               document.write("false,,,,,,,,");
           }
       }
  
       return false;
  
   }
  (stole this latter function from http://stackoverflow.com/questions/237104/array-containsobj-in-javascript)
  </code></pre>
  
  <p>I have no idea why, but the following code's == fails even when I am comparing the same integer to itself. For example with the code below I get output like:</p>
  
  <pre><code>21=21false,,,,,, 
  </code></pre>
  
  <p>As you can see I've already checked to make sure schedule_array exists and has valid numbers. I have also checked to make sure both for loops are running. Finally, I confirmed that in js, even something like "5"==5 should give a true, so even if there is some weird typing going on, that shouldn't affect the outcome.</p>
  
  <p>Question: what is up with this weirdness? What am I doing wrong?</p>