JS中parseINT()函数的使用技巧
2018-03-21 11:41
477 查看
在使用map函数将数字字符数组转换为数字(程序如下),发觉输出为10,NaN,2。
我们期望代码段
查看官方文档,可以发现:parseInt 通常使用一个参数,但实际传入的是两个,第一个是要被转换的字符串,第二个是基数,在这个回调函数中,
使用如下代码进行验证:
不像
使用
他的输出为 10,NaN,2, 基于上述描述,就不会感到意外了。
参考:Array.prototype.map()的文档。
'use strict'; var arr = ['1', '2', '3']; var r = arr.map(parseInt); console.log(r);
我们期望代码段
['1', '2', '3'].map(parseInt);输出结果为[1, 2, 3],但实际输出的是[1,NaN, NaN],
查看官方文档,可以发现:parseInt 通常使用一个参数,但实际传入的是两个,第一个是要被转换的字符串,第二个是基数,在这个回调函数中,
Array.prototype.map传入了三个参数,分别是 数组的元素、索引、和数组名本身,parseInt忽略了第三个参数,但保留着第二个参数,因此产生了这样的错误输出。
使用如下代码进行验证:
function newParseInt(a, b, c){ console.log("result" + "a: " + a); return parseInt(a, 10); } var xs = ['10', '1', '2']; xs = xs.map(newParseInt); /* 输出结果为: console.log(xs); resulta: 10 resulta: 10 resulta: 10 (3) [10, 1, 2] 因此验证了上述说法 */
function returnInt(element) { return parseInt(element, 10); }
//这段代码正确的输出了[1, 2, 3]; console.log(['1', '2', '3'].map(returnInt)); // [1, 2, 3]
//使用简洁的箭头函数同样课得到正确的结果 console.log(['1', '2', '3'].map( str => parseInt(str) ));
// 另一个转换方法: ['1', '2', '3'].map(Number); // [1, 2, 3]
不像
parseInt,
Number还会返回浮点数或者科学计数法
['1.1', '2.2e2', '3e300'].map(Number); // [1.1, 220, 3e+300]
使用
map方法调用
parseInt,使
parseInt作为
map的一个参数的代码如下:
var xs = ['10', '10', '10']; xs = xs.map(parseInt); console.log(xs);
他的输出为 10,NaN,2, 基于上述描述,就不会感到意外了。
参考:Array.prototype.map()的文档。
相关文章推荐
- js中字符替换函数String.replace()使用技巧
- js函数使用技巧之 setTimeout(function(){},0)
- php编程技巧--js常用的函数无缝使用
- js函数使用技巧
- js中字符替换函数String.replace()使用技巧
- js函数使用技巧集合
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- js函数使用技巧之 setTimeout(function(){},0)
- js中字符替换函数String.replace()使用技巧
- js函数使用技巧之 setTimeout(function(){},0)
- js中字符替换函数String.replace()使用技巧
- Oracle中Decode()函数使用技巧
- 常用网页使用js技巧收集
- Oracle中Decode()函数使用技巧
- 深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
- Oracle中Decode()函数使用技巧
- JS 操作IE游览器常用函数使用说明
- Oracle中Decode()函数使用技巧
- 使用JS操作页面表格,元素的一些技巧
- 深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法