この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript クイズ
16. parseInt
以下が出力されます:
[0]
[0, NaN]
[0,NaN,1]
[0,NaN,1,1]
この結果は、 Array.prototype.map()
メソッドと parseInt()
関数の組み合わせによって引き起こされます。map()
メソッドは、各要素について指定された関数を呼び出し、その戻り値から新しい配列を作成します。
一方、parseInt()
関数には2つの引数があります。 第1引数は解析する文字列であり、 第2引数は基数を示すオプションの整数値です。 parseInt()
関数は、文字列内にある数字を解析し、指定された基数に基づいてそれらを10進数に変換します。 ただし、配列内の parseInt()
呼び出しでは、2つ目の引数(基数)は省略されているため、パースされた結果に予期しない動作が発生します。
最初の例では、 ['0']
という配列を渡しています。 map()
メソッドは最初の要素、つまり "0" を parseInt()
関数に渡します。しかし、 parseInt()
関数が戻す値は 0
であって、配列の最終的な結果は[0]
です。
2番目の例では、同じ方法で配列 ['0', '1']
が扱われます。map()
メソッドは "0" と "1" の2つの要素を渡します。ただし、2つ目の要素 "1" は2進数と解釈され、10進数として解析された値は1です。それは、「[0、1]」という予期しない結果をもたらします。同様の方法で、3番目と4番目の例でも予期しない結果が生成されます。