You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js读取CSV累加指定列数字时出现拼接/NaN问题如何解决

问题原因
  • 代码未跳过CSV表头行,表头第三列内容为字符串Daily Device Installs,parseInt转换该字符串会得到NaN,数值与NaN相加结果始终为NaN
  • 未做异常值兼容,即使跳过表头,若对应单元格存在空值、空白字符、非数字字符时,类型转换也会失败
修复代码
const fs = require('fs');
const parse = require('csv-parse');

const csvData = [];
let test = 0;
let isHeaderRow = true;
const parser = parse({ delimiter: ',' });

fs.createReadStream(__dirname + '/test2.csv', 'utf16le')
  .pipe(parser)
  .on('data', function (csvrow) {
    csvData.push(csvrow);
    // 跳过表头行不参与计算
    if (isHeaderRow) {
      isHeaderRow = false;
      return;
    }
    // 去除空白后转数字,判断为有效数字再累加
    const cellValue = csvrow[2]?.trim() ?? '';
    const installCount = Number(cellValue);
    if (!isNaN(installCount)) {
      test += installCount;
    }
  })
  .on('end', function () {
    console.log(test);
  });
补充说明
  • 用isHeaderRow标记过滤表头行,避免对表头文本做类型转换
  • 转换前先去除单元格内容前后的空白字符,避免不可见空格导致转换失败
  • 增加有效性判断,仅对合法数字做累加,避免偶发的格式异常导致最终结果为NaN

内容的提问来源于stack exchange,提问作者broking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:18:04