相关疑难解决方法(0)

为什么parseInt会使用Array#map产生NaN?

来自Mozilla开发者网络:

[1,4,9].map(Math.sqrt)
Run Code Online (Sandbox Code Playgroud)

会产生:

[1,2,3]
Run Code Online (Sandbox Code Playgroud)

为什么这样做:

['1','2','3'].map(parseInt)
Run Code Online (Sandbox Code Playgroud)

屈服于此:

[1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)

我已经在Firefox 3.0.1和Chrome 0.3中进行了测试,只是作为免责声明,我知道这不是跨浏览器功能(没有IE).

我发现以下内容将达到预期的效果.但是,它仍然没有解释错误的行为parseInt.

['1','2','3'].map(function(i){return +i;}) // returns [1,2,3]
Run Code Online (Sandbox Code Playgroud)

javascript

282
推荐指数
4
解决办法
4万
查看次数

什么是.map()在这种情况下做什么?

使用Chrome控制台,这是我的输入和输出:

[0].map(Array);

[[0, 0, [0]]]; // output
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

编辑

这让我好奇的原因是因为像

[0].map(String);
Run Code Online (Sandbox Code Playgroud)

将返回

["0"];
Run Code Online (Sandbox Code Playgroud)

并不是

["0", "0", "String"]
Run Code Online (Sandbox Code Playgroud)

javascript

95
推荐指数
3
解决办法
4744
查看次数

map + parseInt - 奇怪的结果

console.log("1,2,3".split(",").map(parseInt))
Run Code Online (Sandbox Code Playgroud)

版画

[1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)

为什么?

在这里添加一些更多不必要的文本,使这个问题"满足SO质量标准",无论这意味着什么.

javascript

7
推荐指数
2
解决办法
1072
查看次数

将数字转换为反转的数字数组

我已经开发了这个codepen(http://codepen.io/PiotrBerebecki/pen/qZjojV?editors=0010)试图解决以下JavaScript的问题:

给定非负整数,返回一个包含相反顺序的独立数字列表的数组.示例:348597 =>正确的解决方案应该是[7,9,5,8,4,3]

下面的函数显然不正确,因为它返回["7","9","5","8","4","3"] - 正确的顺序,但带引号.我怎么能修改它以便它返回[7,9,5,8,4,3]?

function digitize(n) {
  var initialArray = (""+n).split('');
  var reversedArray = [];
  for (var i = initialArray.length - 1; i >= 0; i--) {
    reversedArray[i] = initialArray.shift();
  }
  return reversedArray;
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays reverse object

1
推荐指数
3
解决办法
3122
查看次数

标签 统计

javascript ×4

arrays ×1

object ×1

reverse ×1