题目描述:给定数组 ['1', '7', '11']
,执行 ['1', '7', '11'].map(parseInt)
,输出什么?
首先,让我们看看 map、parseInt 函数的用法和参数形式。
map 函数
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
arr.map(callback(currentValue[, index[, array]])[, thisArg])
parseInt 函数
parseInt() 函数解析一个字符串并返回一个整数。接收两个参数,其中第二个参数 radix 表示要解析的数字的基数。
parseInt(string, radix)
回答
执行代码:['1', '7', '11'].map(parseInt)
。
这段代码的执行过程可以拆分为以下两个步骤:
parseInt
的第二个参数从map
函数中取得。- 对于数组中的每个元素,
parseInt
都会被调用,并传递相应的参数。
在第一个回调函数中,'1', '7', '11' 分别作为第一个参数传入 parseInt
函数,并且传递其相应的索引值作为第二个参数(map
返回的已计算好的索引值):
// 第一次迭代:
parseInt('1', 0) // 1
// 第二次迭代:
parseInt('7', 1) // NaN
// 第三次迭代:
parseInt('11', 2) // 3
parseInt('7', 1)
的结果是 NaN
。这是因为当基数为 1 时,无论数字如何,parseInt
都将无法解析出数字,并特别返回 NaN
。
所以输出结果是 [1,NaN,3]
。
示例:
console.log('1:', parseInt('1', 0)); // 1
console.log('2:', parseInt('7', 1)); // NaN
console.log('3:', parseInt('11', 2)); // 3
console.log(['1', '7', '11'].map(parseInt)); // [1,NaN,3]
<!--输出结果-->
1: 1
2: NaN
3: 3
[ 1, NaN, 3 ]
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS面试题解[‘1’, ‘7’, ’11’].map(parseInt) 输出 - Python技术站