悪いのはECMA-262である
var
strs = ['123', '456', '789'],
nums = strs.map(parseInt);
if(nums[1] !== nums[1]) {
console.log('NaNなんですか?!');
}
仕様が悪いという印象はあまり受けないなあ。使う側が正しく理解してるかどうかのような。
一見 おや?と思ったけど、mapで渡される第二引数と、parseIntの第二引数考えたら当然の結果で、納得できる内容。
コールバックを引数にとるメソッドは引数とthisコンテキストでどんな振る舞い起こすのかきちんと確認しないといけないと思いますよ。
というかそもそも、strsを3行目で使うなら、 いったん2行目ステートメント完結させんと。 構文エラー起きないか?
http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint