跳到主要内容

数组

2025年03月19日
柏拉文
越努力,越幸运

一、["1", "2", "3"].map(parseInt)


问题: ["1", "2", "3"].map(parseInt) 答案是多少

parseInt(str, radix)

解析一个字符串,并返回10进制整数 第一个参数str,即要解析的字符串 第二个参数radix,基数(进制),范围2-36 ,以radix进制的规则去解析str字符串。不合法导致解析失败 如果没有传radix 当str以0开头,则按照16进制处理 当str以0开头,则按照8进制处理(但是ES5取消了,可能还有一些老的浏览器使用)会按照10进制处理 其他情况按照10进制处理 eslint会建议parseInt写第二个参数(是因为0开始的那个8进制写法不确定(如078),会按照10进制处理)

// 拆解
const arr = ["1", "2", "3"]
const res = arr.map((item,index,array)=>{
// item: '1', index: 0
// item: '2', index: 1
// item: '3', index: 2
return parseInt(item, index)
// parseInt('1', 0) // 0相当没有传,按照10进制处理返回1 等价于parseInt('1')
// parseInt('2', 1) // NaN 1不符合redix 2-36 的一个范围
// parseInt('3', 2) // 2进制没有3 返回NaN
})

// 答案 [1, NaN, NaN]