95

重複の可能性:
javascript - Array.map および parseInt

Twitterでこの JavaScript の奇妙な動作の例を見ました

['10','10','10','10','10'].map(parseInt)

に評価されます

[10, NaN, 2, 3, 4]

誰かがこの動作を説明できますか? chromeとfirebugで確認しました

['10','10','10','10','10'].map(function(x){return parseInt(x);})

10 の配列を整数として正しく返します。これは map() の不適切な使用ですか、parseInt のバグですか、それとも何か他のことですか?

4

3 に答える 3

111

parseInt文字列と基数の 2 つの引数を受け取ります。

var intValue = parseInt(string[, radix]);

mapハンドラーの 2 番目の引数はインデックスです。

... コールバックは、要素の値、要素のインデックス、およびトラバースされる Array オブジェクトの 3 つの引数で呼び出されます。

于 2013-01-25T18:49:19.383 に答える
36

parseIntmap によって渡される最初の 2 つの引数を使用し、2 番目の引数を使用して基数を指定します。

コードで何が起こっているかを次に示します。

parseInt('10', 0) // 10
parseInt('10', 1) // NaN
parseInt('10', 2) // 2
parseInt('10', 3) // 3
parseInt('10', 4) // 4

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseIntの MDN へのリンクは次のparseIntとおりです。

于 2013-01-25T18:49:17.847 に答える
5

MDN から:

callback は、要素の値、要素のインデックス、およびトラバースされる Array オブジェクトの 3 つの引数で呼び出されます。

parseInt()2 つの引数を取ります。値と基数。これは、parseInt()関数が意図しないパラメーターで呼び出されていることを意味します。

于 2013-01-25T18:50:59.767 に答える