1. ホーム
  2. javascript

[解決済み] Map, parseIntの奇妙な動作 [重複].

2023-02-17 08:53:40

質問

重複の可能性があります。

javascript - Array.mapとparseInt

JavaScriptの奇妙な動作の例として、次のようなものを見かけました。 ツイッターで

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

は、以下のように評価されます。

[10, NaN, 2, 3, 4]

は、誰かがこの動作を説明することができますか? 私はクロームとfirebugでそれを検証しました。

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

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

どのように解決するのですか?

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

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

と同時に map ハンドラの第2引数はindexです。

...コールバックは3つの引数で呼び出されます:要素の値。 要素の値、要素のインデックス、そして走査される配列オブジェクトの3つの引数で呼び出されます。