Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 地图+;parseInt-奇怪的结果_Javascript - Fatal编程技术网

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))