parseInt
2021-03-16 本文已影响0人
隔壁老王z
先来看一个函数
['23', '8', '10'].map(parseInt)
// 输出的结果是 [23, NaN, 2]
为什么?
我们来看看array.map
函数的参数:array.map(currentValue, inddex, array)

也就相当于给
parseInt
传递了三个参数:
parseInt('23', 0, array) // 第二个参数默认是0,表示十进制 23
parseInt('8', 1, array) // NaN
parseInt('10', 2, array) // 2
所以有了上面的输出
map
函数会接受多个参数,这就是map
函数的副作用
loadash
中的fp
模块(functional programming)可以解决这个问题:
const fp = require('loadash/fp')
fp.map(parseInt, ['23', '8', '10'])
// [23, 8, 10]