js中的map(parseInt)问题

您所在的位置:网站首页 在js中parseint js中的map(parseInt)问题

js中的map(parseInt)问题

2024-01-18 08:34| 来源: 网络整理| 查看: 265

廖雪峰老师的js中有这样一个例子:小明希望利用map()把字符串变成整数,他写的代码很简洁:

'use strict'; var arr = ['1', '2', '3']; var r; r = arr.map(parseInt); console.log(r);

结果竟然是1, NaN, NaN,小明百思不得其解,请帮他找到原因并修正代码。

按照常理来说,map将函数对象作为其参数,迭代遍历数组的每个元素,并为每个元素调用一次函数,将元素值作为参数传递。这些函数调用的结果累积到一个新数组中。parseInt是内置函数,它尝试将字符串解析为数字并返回,如果无法解析为数字则返回NaN。所以上述例子应该显示1,2,3。那么问题出在哪?

根据map文档可知,map()语法:

var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])

callback:产生新数组元素的函数,带有三个参数:currentValue、index和array 所以,所以例子中的parseInt函数应该是:parseInt(“1”,0,arr)、pa



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3