拆分和映射后输出错误

时间:2014-08-26 14:44:43

标签: javascript node.js

我运行以下代码并且javascript返回疯狂的resualt?

代码:

"000000000000000000000000".split('').map(parseInt)

输出:

[0, NaN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

为什么第二项数组是NaN?

2 个答案:

答案 0 :(得分:3)

parseInt actually takes two arguments,第二个是基数; mapprovide three arguments to the called function:当前值,当前索引和整个数组。

这意味着第一项将是parsetInt(0, 0),第二项将是parseInt(0, 1),依此类推......

你应该强制参数计数:

"000000000000000000000000".split('').map(function(n) { return parseInt(n); })

答案 1 :(得分:2)

  

map使用三个参数调用该函数。首先是   element,第二个是数组中的索引(第三个是数组   本身)。 parseInt有两个参数。

这里解释清楚:

http://www.quora.com/Exactly-why-does-10-10-10-10-10-map-parseInt-return-10-NaN-2-3-4-in-JavaScript