<p>From the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map" rel="noreferrer">Mozilla Developer Network</a>:</p>

<pre><code>[1,4,9].map(Math.sqrt)
</code></pre>

<p>will yield:</p>

<pre><code>[1,2,3]
</code></pre>

<p>Why then does this:</p>

<pre><code>['1','2','3'].map(parseInt)
</code></pre>

<p>yield this:</p>

<pre><code>[1, NaN, NaN]
</code></pre>

<p>I have tested in Firefox 3.0.1 and Chrome 0.3 and just as a disclaimer, I know this is not cross-browser functionality (no IE).</p>

<p>I found out that the following will accomplish the desired effect. However, it still doesn’t explain the errant behavior of <code>parseInt</code>.</p>

<pre><code>['1','2','3'].map(function(i){return +i;}) // returns [1,2,3]
</code></pre>

I'm going to wager that it's something funky going on with the parseInt's 2nd parameter, the radix.  Why it is breaking with the use of Array.map and not when you call it directly, I do not know.
```
```
//  Works fine
parseInt( 4 );
parseInt( 9 );

//  Breaks!  Why?
[1,4,9].map( parseInt );

//  Fixes the problem
[1,4,9].map( function( num ){ return parseInt( num, 10 ) } );
```
```