Javascript 地图+;parseInt-奇怪的结果
印刷品Javascript 地图+;parseInt-奇怪的结果,javascript,Javascript,印刷品 console.log("1,2,3".split(",").map(parseInt)) 为什么?.map使用三个参数调用parseInt()——值、数组索引和数组本身 索引参数被视为基数: [1, NaN, NaN] 这里将详细讨论这一点:。针对这一问题提出的解决方案,以及显而易见的 parseInt('1', 0, a); // OK - gives 1 parseInt('2', 1, a); // FAIL - 1 isn't a legal radix parseInt(
console.log("1,2,3".split(",").map(parseInt))
为什么?
.map
使用三个参数调用parseInt()
——值、数组索引和数组本身
索引
参数被视为基数:
[1, NaN, NaN]
这里将详细讨论这一点:。针对这一问题提出的解决方案,以及显而易见的
parseInt('1', 0, a); // OK - gives 1
parseInt('2', 1, a); // FAIL - 1 isn't a legal radix
parseInt('3', 2, a); // FAIL - 3 isn't legal in base 2
还包括以下数字:
a.map(function(e) { return parseInt(e, 10)})
或基于部分应用程序的解决方案(有关更多信息,请参阅):
.map使用三个参数调用parseInt()——值、数组索引和整个数组实例。谢谢!还有另一个javascript陷阱。如果你没有阅读手册,这只是一个陷阱…一个有文档记录的陷阱,又称反直觉行为,仍然是一个陷阱。阅读:
a.map(Number)
Function.prototype.partial = function(/*args*/) {
var a = [].slice.call(arguments, 0), f = this;
return function() {
var b = [].slice.call(arguments, 0);
return f.apply(this, a.map(function(e) {
return e === undefined ? b.shift() : e;
}));
}
};
["1", "2", "08"].map(parseInt.partial(undefined, 10))