["1", "2", "3"].map(parseInt)为什么返回 [1,NaN,NaN]
2018-03-22 17:41
423 查看
parseInt基本用法
定义:parseInt() 函数可解析一个字符串,并返回一个整数。
语法:
parseInt(string, radix)
说明:
string:必需。要被解析的字符串。 radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则
parseInt() 将返回 NaN。
当参数 radix 的值为 0,或没有设置该参数时,
parseInt() 会根据 string 来判断数字的基数。
举例,如果 string 以 “0x” 开头,
parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许
parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
实例:
parseInt("10"); //返回 10 parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15) parseInt("010"); //未定:返回 10 或 8 注:在ECMA Script3引擎中,默认转化为八进制 在ECMA Script5引擎中,默认转化为十进制
map定义和用法
定义:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素。 注意: map() 不会对空数组进行检测。 注意: map() 不会改变原始数组。
语法:
array.map(function(currentValue,index,arr), thisValue)
参数说明
currentValue:当前元素的值 index:当期元素的索引值 arr:当期元素属于的数组对象 thisValue:对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"
(thisValue另起一篇 => 传送门)
var parseInt = function (v,i,o) { console.log(v+'-'+i+'-'+o); } var n = ["1a", "2", "3"].map(parseInt); //打印结果 1-0-1,2,3 //1对应currentValue 0对应index 1,2,3对应arr,不过默认转义显示 2-1-1,2,3 3-2-1,2,3
var n = ["1", "2", "3"].map(parseInt); console.log(n); //打印结果 [1, NaN, NaN]
可以把上面表达式分解为下面的运算:
parseInt(‘1’,0);
根据parseInt的规则,如果省略该参数或其值为 0,则数字将以 10 为基础来解析。所以结果是1。
parseInt(‘2’,1);
如果parseInt的基数redix该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。所以结果是NaN。
parseInt(‘3’,2);
radix参数是2,parseInt() 将把它解析为二进制的整数,二进制只有1和0组成,所以返回NaN。
如果是
parseInt(‘1’,2)/
parseInt(‘0’,2)/
parseInt(‘10’,2),将会返回对应的二进制1,0,2
相关文章推荐
- 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?【转】
- 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
- 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
- ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]
- ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]而不是[1,2,3]
- 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
- 面试题:为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
- 解惑 ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]
- 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
- 解惑 ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]
- ["1", "2", "3"].map(parseInt)
- ["1", "2", "3"].map(parseInt)?
- Web前端面试指导(三十六):["1", "2", "3"].map(parseInt) 答案是多少?
- String[] a = new String[]{"1","2"},我如果想增加一个"3"到a中,如何增加?
- 函数功能:传入一个数组,返回数组中第二大数。已知数组中的对象都是数字构成的字符串,且任意两元素不相等。 如传入:@[@"1",@"2",@"3",@"4"],返回@"3"
- linux中crontab定时器里的"2>&1"含义解释:
- "2>&1" 是什么意思
- shell中的"2>&1"是什么意思?
- 关于"1>” "2>" "2>&1" 的具体意思
- 有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数