title: jQuery $.map works in IE8 but not IE7
body: <p>Using jQuery 1.9.1 &amp; IE8, but the page also needs to work in IE7.  In code before the part that is causing the issue, I read some data in &amp; build an array that is a <code>SELECT</code> statement.  In the section of code where I have an issue, I am doing the following:</p>
  
  <pre><code>var found = $.map( mySelArr, function(val) {
     return val.mySelID === zSelID ? val.mySelStatement: null;
     });
  </code></pre>
  
  <p>I then reference it:</p>
  
  <pre><code>var selStmt = found[0];  
  </code></pre>
  
  <p>(there will be only 1 returned, and I know it will be in the array).  </p>
  
  <p>In IE7, I saw that it is throwing an exception inside jquery.js.  When I step through debug on it, I see that the found length is zero (in IE7).  If I change the mode to IE8, everything works fine.  But in IE7, nothing gets put into the <code>found</code> variable.  </p>
  
  <p>What am I doing wrong to not be able to get this array value out in IE7?  Would appreciate any thoughts.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>mySelArr is an array of Select statements, similar to:</p>
  
  <pre><code>1,&lt;select name='mySelID_1' id='plist' &gt;&lt;option selected='selected' disabled='disabled' value='0'&gt;Select Action&lt;/option&gt;&lt;option value="1"&gt;This one&lt;/option&gt;&lt;option value="2"&gt;That one&lt;/option&gt;&lt;/select&gt;
  </code></pre>
  
  <p>and so on.</p>
  
  <p><strong>EDIT 2</strong></p>
  
  <p>I may have stumbled on the issue.  </p>
  
  <p>The array that held the select statements was being populated correctly in IE8, but not in IE7.  </p>
  
  <p>I actually had 2 arrays, one being just a number, and the other being that same number + the Select statement.  The array that had the index &amp; select statement was built using:</p>
  
  <pre><code>arr1.push({ fld1:data1, fld2:selstmt})
  </code></pre>
  
  <p>The one with just numbers was built using: </p>
  
  <pre><code>arr2.push(arrndx)
  </code></pre>
  
  <p>The arr2 was the outer FOR, the arr1 was the inner FOR.  I had been referring to the number index by using:</p>
  
  <pre><code>var z = arr2[x][0];
  </code></pre>
  
  <p>to get the number &amp; then using that to loop thru arr1 to get everything matching it &amp; building the Select statement. What I discovered was that IE7 was returning <code>undefined</code> in the line of code above, while IE8 was returning the number (Firefox also).  </p>
  
  <p>I changed 2 lines of code to fix the issue:</p>
  
  <pre><code>FROM   arr2.push(arrndx) 
  TO     arr2.push( {arrindex: arrndx} );
  </code></pre>
  
  <p>and </p>
  
  <pre><code>FROM   arr2[x][0]
  TO     arr2[x].arrindex
  </code></pre>
  
  <p>and it works in both IE7 &amp; IE8.  IE7 didn't have a problem creating that array, or reading it - it just wasn't valid data in it because of how I attempted to reference the fields in it.</p>
  
  <p>I'm not exactly sure why IE7 had a problem with it &amp; IE8 didn't, but....   Also, the fix didn't appear to break anything else.</p>