["1", "2", "3"].map(parseInt) 结果

// 下面的语句返回什么呢:
["1", "2", "3"].map(parseInt);
// 你可能觉的会是[1, 2, 3]
// 但实际的结果是 [1, NaN, NaN]

// 通常使用parseInt时,只需要传递一个参数.
// 但实际上,parseInt可以有两个参数.第二个参数是进制数.
// 可以通过语句"alert(parseInt.length)===2"来验证.
// map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素,
// 元素索引, 原数组本身.
// 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,
// parseInt把传过来的索引值当成进制数来使用.从而返回了NaN.

function returnInt(element) {
  return parseInt(element, 10);
}

[‘1‘, ‘2‘, ‘3‘].map(returnInt); // [1, 2, 3]
// 意料之中的结果

// 也可以使用简单的箭头函数,结果同上
[‘1‘, ‘2‘, ‘3‘].map( str => parseInt(str) );

// 一个更简单的方式:
[‘1‘, ‘2‘, ‘3‘].map(Number); // [1, 2, 3]
// 与`parseInt` 不同,下面的结果会返回浮点数或指数:
[‘1.1‘, ‘2.2e2‘, ‘3e300‘].map(Number); // [1.1, 220, 3e+300]

原文地址:https://www.cnblogs.com/mengfangui/p/8692275.html

时间: 2024-10-12 12:08:53

["1", "2", "3"].map(parseInt) 结果的相关文章

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

["1", "2", "3"].map(parseInt)得到什么? 答案是:[1, NaN, NaN]. 原因:parseInt接收的是两个参数,map传递的是3个参数. map函数定义: arr.map(callback[,thisArg]); callback函数需要以下3个值: currentValue:当前处理数值 index:处理的数值的索引值 array:map函数处理的函数值 thisArg可选.  callback函数里的thi

['1','2','3'].map(parseInt) 返回的是什么?

返回的是:[1,NaN,NaN] 首先我们先分析一下  parseInt  函数: parseInt()函数解析一个字符串参数,并返回指定基数的整数(数学系统中的基数). 它可以有两个参数,用法:parseInt(string, radix) string:要解析的值.如果其不是字符串,则将其转换为字符串(使用toString抽象操作).字符串开头的空白符将会被忽略. radix:可选.表示要解析的数字的基数.该值介于 2 ~ 36 之间,默认为10 返回值:返回解析后的整数值. 如果被解析参数

解惑 ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]

javascript中的parseInt与map函数都是常用的函数,可是 ["1", "2", "3"].map(parseInt) 为何返回不是[1,2,3]却是[1,NaN,NaN]? 这涉及到是否深入理解两个函数的格式与参数含义. 首先根据我对两个函数用法的了解,猜测是由于parseInt(string, radix) 的参数radix必须介于2~36之间,而且字符串string中的数字不能大于radix才能正确返回数字结果值. 我们通过以

["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]

转载自:http://blog.csdn.net/freshlover/article/details/19034079 这涉及到是否深入理解两个函数的格式与参数含义. 首先根据我对两个函数用法的了解,猜测是由于parseInt(string, radix) 的参数radix(进制)必须介于2~36之间,而且字符串string中的每个位上的数字不能大于radix才能正确返回数字结果值. 我们通过以下javascript代码测试一下: var a=["1", "2",

由["1", "2", "3"].map(parseInt) 引发的问题

基础知识 map语法 map(callback, [thisArg]) map 参数 callback 生成新数组元素的函数,callback参数,使用三个参数 currentValue callback 数组中正在处理的当前元素 index [可选] callback 数组中正在处理的当前元素的索引 array [可选] callback  map 方法被调用的数组 thisArg [可选] 执行 callback 函数时使用的this 值 返回值 一个新数组,每个元素都是回调函数的结果 pa

['1', '2', '3'].map(parseInt) 输出答案和解析

根据题目可以了解到这道题主要考我们的是对map函数和parseInt函数的熟悉程序,所以我们先来了解这两个函数 map 根据MDN上对于map的解释:map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果. 上面的话读起来可能比较晦涩,我个人理解其实就是遍历数组,对数组的每一项进行遍历并做数据处理.这道题的关注重点就是在于map对于数组处理的方法,所以我们着重看下在MDN对于map参数的解释: callback 生成新数组的元素的函数,使用三个参数: curr

关于面试题:[1, 2, 3].map(parseInt)问题的剖析

一.前言 最近有小伙伴在公号中咨询了胡哥这道面试题,窃以为是比较有意思的一道面试题,于此分享给各位小伙伴.先把答案给了各位,和你理解的一样吗?! [1, 2, 3].map(parseInt) // [1, NaN, NaN] 如果你答案你都明白,请出门左转:React源码/原理了解一下. 二.剖析 这道面试题,本身并不复杂.不能正确回答问题的小伙伴,大多数集中于对parseInt这个函数的不了解或者了解的不全面,下面就由胡哥为大家抽丝剥茧一一讲述. 1. map函数 map()方法创建一个新数

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

让我们先看看最直接最粗暴的方式 没错,答案就是:[1, NaN, NaN],那为什么答案是[1, NaN, NaN]呢? 1.让我们先了解一下map函数的定义 JavaScript Array map() 方法 定义和用法 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: map() 不会改变原始数组. 因为 parseInt 需要两个参数 (val, radix

parseInt和map的结合使用

parseInt有两个参数 parseInt(str,进制); map是es5的数组方法,有三个参数 map(当前正在遍历的元素, 元素索引, 原数组本身); alert(parseInt.length===2); //true var arr = ["1","2","3"].map(parseInt); //得到不是[1,2,3],而是[1,NaN,NaN] 造成这个结果,parseInt的的二个参数是元素的索引.为了避免,我可以这样写一个方法