JavaScript - map和parseInt的坑
2024-10-08 12:37:35
问题:
var arrs = ['1', '2', '3'];
var r = arrs.map(parseInt);
alert(r);//1,NaN,NaN
map
arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
parseInt
parseInt(string, radix);
因为map()接收三个参数,parseInt()接收两个参数,所以map的第三个参数被parseInt忽略了。
现在来分析下程序,假如现在执行arr的第一个元素,即'1';对应到map参数可知,此时传入map的第一个参数即为被传递的元素'1';第二个参数即为其索引0;
这两个参数被传入parseInt中,即parseInt('1', 0);对应到上述parsent的参数规则可知,此时结果为1;
同理,parseInt('2',1) //radix小于2 返回NaN
parseInt('3',2) //3是非法的二进制数,返回NaN
解决:
function parseInt_base10(s)
{
return parseInt(s,10);
}
r = arrs.map(parseInt_base10,arrs);
//或者r = arrs.map(parseInt_base10);
alert(r);//[1,2,3]
最新文章
- 对于SQL Server,我需要多少内存
- 2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961
- jQuery自动加载更多程序
- IOS, xib和storyboard的混用
- [转]后台页面访问权限:页面基类&;内置票据认证 使用方法
- NLTK中的词性
- java后台SSH框架之Hibernate心得一
- undefined与null的区别---js
- php生成缩略图
- 安装orcle10g oel5.6
- 我的Fedora环境
- 探索C/C++大数快(自然数)模板
- python unicode 转中文 遇到的问题 爬去网页中遇到编码的问题
- 每日冲刺报告——Day1(Java-Team)
- saltstack通过jinja模板,将变量值增加到配置文件中?通过引用变量值修改配置文件?
- 学习 MeteoInfo二次开发教程(四)
- Win8下枚举任意进程的句柄表。。。(VB6 Code)
- 【Linux】ps命令
- (转)Python3之pickle模块
- Python jieba库的使用说明