题目:console.log(['1', '2', '3'].map(parseInt))
结果:[ 1, NaN, NaN ]
解析:
parseInt(string, redix)
参数 | 描述 |
---|---|
string | 必需。要被解析的字符串 |
radix | 可选。表示要解析的数字的基数。该值介于 2~35之间如果省略参数或者其值为0,则数字将以10为基础来解析。如果它以“0x"或者”0X“开头将以16为基数。如果该参数小于2或者大于36 将返回NaN |
如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
console.log(parseInt('2')) //按10进制计算结果
console.log(parseInt('10', 10)) // 按10进制计算结果
console.log(parseInt('010', 8)) // 按8进制计算结果
arr.map()
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
array.map(function(currentValue,index,arr), thisValue)
参数 | 描述 |
---|---|
function | 必须。函数,数组中的每个元素都会执行这个函数 |
thisValue | 可选。对象作为该执行回调函数时使用,传递给函数,用作”this“的值如果省略了thisValue,或者传入 nul、undefined,那么回调函数的this为全局对象。 |
function:
参数 | 描述 |
---|---|
currentValue | 必须。当前的元素的值 |
index | 可选。当前元素的索引值 |
arr | 可选。当前元素属于的数组对象 |
const arr = [1,2,3]
console.log(arr.map((item, index) => {
console.log(index)
return item + 1
}))
答:
const arr = [1,2,3]
console.log(arr.map((item, index) => {
console.log(index)
return parseInt(item, index)
}))