JavaScript 数组映射:回调 vs 箭头函数

时间:2021-07-07 12:05:54

标签: javascript

我遇到了一个关于 JS 中数组映射函数的问题,无法解释为什么会发生这种情况,也没有找到任何有用的搜索结果和解释。对不起,如果这已经张贴在某处。

谁能解释为什么结果不同?

const [ i, j ] = "1x2".split('x').map((value) => parseInt(value));
console.log(i);
console.log(j);

const [ i, j ] = "1x2".split('x').map(parseInt);
console.log(i);
console.log(j);

干杯

1 个答案:

答案 0 :(得分:2)

parseInt 接收 radix 作为第二个参数:

<块引用>

radix 可选

一个介于 2 和 36 之间的整数,表示字符串的基数(数学数字系统中的基数)。小心——这不会默认为 10!如果基数值不是数字类型,它将被强制转换为数字。

所以,当你这样做时:

const [ i, j ] = "1x2".split('x').map(parseInt);

就像:

const [ i, j ] = "1x2".split('x').map((value, index) => parseInt(value, index));

(使用 mapcurrentValuecurrentIndex 调用 arrayReference 回调)


因此,parseInt("2", 1)NaN,因为 1 不是有效的 radix 值。

相关问题