在节点js中调用字符串上的parseInt返回NaN

时间:2012-11-05 14:39:44

标签: javascript node.js

我使用节点js中的binaryjs模块从客户端传入Buffer。此缓冲区包含一个管道分隔的字符串,我最终在服务器上进行解析。

在客户端,我将String转换为Uint8Array。 My String看起来像这样:

var stringToConvert = 'A_1_22|B_2_33|C_3_44';

当这个Uint8Array传递给我的服务器时,它被作为Buffer接收。我首先将Buffer组合成一个数组:

var parts = [];
// ...
// as data is received:
parts.push(data);

当我将所有数据流式传输时,我将此数组转换为字符串并按“|”拆分:

var arrayString = parts.toString().split("|");

这为我提供了所需的数组输出:

arrayString = ['A_1_22', 'B_2_33', 'C_3_33'];

然后我迭代这个arrayString并再次用“_”分割。

for(var i = 0; i < arrayString.length; i++)
{
    var thisArray = arrayString[i].split("_");
    // ...

当我尝试迭代thisArray以将第二个和第三个值转换为整数时,会出现问题:

var intVal1 = parseInt(thisArray[1]); // returns NaN
var intVal2 = parseInt(thisArray[2]); // returns NaN
console.log(typeof thisArray[1]); // returns string

在客户端运行相同的代码可以正确地将字符串转换为int。不确定我在这里缺少什么?

0 个答案:

没有答案