最近面试高发题
[1, 2, 3].map(parseInt) 结果和原因?
结果:[1, NaN, NaN]
原因: [1, 2, 3].map(parseInt) 完整形式 => [1, 2, 3].map((val, k) => parseInt(val, k))
看看 parseInt的参数 第二个是进制数(默认为10),范围在2-36,当k不在这个范围,则返回NaN。
我们来练习一下
[1, 2, 3, 3, 2, 1, 6, 7, 8, 9, 10, 11, 22].map(parseInt)
// 结果?
[1, NaN, NaN, NaN, 2, 1, NaN, NaN, NaN, NaN, 10, 12, 26]
// 注意进制的转换 在数字层面最大9 11进制11 = 1 * 11 + 1 = 12
// 这边只是简单的提醒 敲代码的应该都了解