wangyuan0108 / fe-qa

知识和笔记,整理分享,以便提升和巩固
https://github.com/wangyuan0108/blog/issues
13 stars 0 forks source link

['1', '2', '3'].map(parseInt)输出的值是什么? #79

Open wangyuan0108 opened 4 years ago

wangyuan0108 commented 4 years ago

以上等价于

['1', '2', '3'].map((item, index) => {
    return parseInt(item, index)
})

结果

parseInt('1', 0) // 1
parseInt('2', 1) // NaN
parseInt('3', 2) // NaN, 3 不是二进制
//[1,NaN,NaN]
wangyuan0108 commented 4 years ago

如果要变成数字数组呢?可以这样:

['1','2','3'].map(Number);
// [1,2,3]
wangyuan0108 commented 4 years ago
let unary = fn => val => fn(val)
let parse = unary(parseInt)
console.log(['1.1', '2', '0.3'].map(parse))

// [1,2,0]

wangyuan0108 commented 4 years ago

显式指定转换基数

['1','2','3'].map(n=>parseInt(n,10))
['1','2','3'].map(n=>parseInt(n))
// [1,2,3]