Nodejsparsing最小值和最大值返回错误的值

我正在使用csvparsing器来parsing我有一个CSV文件。 然后,在parsing每一行时,我将检查行中的每个值以获取最小值和最大值。

我的问题是,我的最高持续出现在COL和ROW列99。 当它们的最大值是大约200行和300列。 我不知道那里发生了什么,据我所知我的方法应该工作。

这是我的相关代码:

var mins = {} var maxs = {} function loadCSV(finishedCallback) { console.log("Loading csv..."); fs.createReadStream(__dirname + '/data.csv') .pipe(stream) .on('data', function (data) { for (var k in data) { if (data.hasOwnProperty(k)) { if (mins[k] == undefined) mins[k] = data[k]; if (maxs[k] == undefined) maxs[k] = data[k]; if (mins[k] > data[k]) mins[k] = data[k]; if (maxs[k] < data[k]) maxs[k] = data[k]; } } }).on('finish', function () { console.log("Finished reading csv!") finishedCallback(); console.log("Maxs: " + JSON.stringify(maxs)); console.log("Mins: " + JSON.stringify(mins)); return true }) } 

这里是我的CSV的前几行:(我知道重复的X和Y领域,我没有最终使用)

 X,Y,X,Y,ROW,COL,EMH,EMV,ASP,DEM,SLOPE 495118.8125,4469900.5,495118.80000,4469901.00000,0,79,15.56310,8.11320,285.65760,318.85077,0.12900 495120.8125,4469900.5,495120.80000,4469901.00000,0,80,15.64225,8.12110,286.47190,318.87570,0.13107 495122.8125,4469900.5,495122.80000,4469901.00000,0,81,15.76020,8.10590,287.70340,318.91686,0.13890 

我有一个感觉,我可能是愚蠢的,缺less一些明显的东西:P

您正在比较string而不是数字:

 $ node > '99' > '300' true 

因此,在进行任何比较之前,首先将data[k]转换为数字:

 var value = Number(data[k]);