如何用JS统计逗号分隔字符串的逗号并替换,仅保留第1、8列?
JavaScript实现CSV列筛选(仅保留第1、8列)
方案1:正则replace方案(处理效率高)
你提到的通过replace()实现的方案可以通过全局多行正则快速完成处理,无需拆分字符串,适合大体积的CSV内容:
// 替换为你的原始CSV字符串 const rawCSV = `value1,value2,value3,value4,value5,value6,value7,value8,value9,value10, value1,value2,value3,value4,value5,value6,value7,value8,value9,value10, value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,`; // 保留第1、8列,输出新CSV字符串 const resultCSV = rawCSV.replace(/^([^,]+),(?:[^,]+,){6}([^,]+),.*$/gm, '$1,$2'); console.log(resultCSV);
输出示例:
value1,value8 value1,value8 value1,value8
方案2:拆分遍历方案(可读性强,易修改)
如果后续需要调整保留的列,推荐用拆分遍历的方式,逻辑更直观:
const rawCSV = `value1,value2,value3,value4,value5,value6,value7,value8,value9,value10, value1,value2,value3,value4,value5,value6,value7,value8,value9,value10, value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,`; const resultArr = rawCSV.split('\n') .filter(line => line.trim() !== '') // 过滤空行 .map(line => { const columns = line.split(','); // 数组下标从0开始,第1列对应下标0,第8列对应下标7 return [columns[0], columns[7]]; }); // 如需转为CSV字符串可执行:resultArr.map(item => item.join(',')).join('\n') // 输出的二维数组可直接作为Chart.js折线图的标签、数值数据源使用 console.log(resultArr);
内容的提问来源于stack exchange,提问作者Roby Sottini
相关产品推荐
相关产品推荐

