在节点js的string上调用parseInt将返回NaN
我使用节点js中的binaryjs模块从客户端传入一个Buffer。 这个缓冲区包含一个pipe道分隔的string,我最终在服务器上parsing。
在客户端我将string转换为Uint8Array。 我的string看起来像这样:
var stringToConvert = 'A_1_22|B_2_33|C_3_44';
当这个Uint8Array传递给我的服务器,它被作为一个缓冲区接收。 我首先将Buffer组合到一个数组中:
var parts = []; // ... // as data is received: parts.push(data);
当我有所有的数据stream,我将这个数组转换为一个string和“|”拆分:
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
在客户端运行相同的代码将string正确转换为整数。 不知道我在这里错过了什么?