要在其他函数中使用的数组"/>
node js,从csv文件中读取特定列,并将其转换为要在其他函数中使用的数组
我正在尝试掌握使用节点js解析CSV文件的基本知识。
我编写了一个简单的函数来获取数组中每个字符串的最后一个字符(在我的情况下,它始终是一个数字),并向我显示最大数字:
var ARRAY_OF_ALL_EMAILS = ["email_1", "email_22"]
function GET_NUMBER() {
let MAXIMAL_NUMBER;
for (let i = 0; i < ARRAY_OF_ALL_EMAILS.length; i += 1) {
if (MAXIMAL_NUMBER == null || MAXIMAL_NUMBER == undefined || MAXIMAL_NUMBER < (ARRAY_OF_ALL_EMAILS[i].slice(-1))) {
MAXIMAL_NUMBER = (ARRAY_OF_ALL_EMAILS[i].slice(-1))
}
}
return MAXIMAL_NUMBER;
}
let MAXIMAL_NUMBER_FINAL = GET_NUMBER();
console.log(MAXIMAL_NUMBER_FINAL);
这段代码按预期工作:
> node index.js
> 2
但是我想做的是解析一个csv文件,仅提取该文件的col2并将值存储在我的变量var ARRAY_OF_ALL_EMAILS;
中,因此它的行为就像我以这种方式声明了数组:var ARRAY_OF_ALL_EMAILS = ["email_1", "email_2"]
。
我设法成功解析了整个csv文件,但是当我尝试仅使用某个列时,我总是会失败。
[能否请您告诉我如何仅使用CSV文件中的特定列并将其存储为数组,以便可以在GET_NUMBER
函数中使用它?我知道应该可以通过索引或名称来实现,但对我来说根本行不通。
csv的示例:
col1,col2,col3,col4
aaa1,aaa_1,aaa3,aaa4
bbb1,bbb_2,bbb3,bbb4
ccc1,ccc_3,ccc3,ccc4
为此,我正在使用csv软件包(npm install csv
)
谢谢
回答如下:我使用示例数据集改编了https://csv.js/parse/api/sync/中的示例。以下代码未经测试。
const parse = require('csv-parse/lib/sync'); //include
//the dataset
const input = `
col1,col2,col3,col4
aaa1,aaa_1,aaa3,aaa4
bbb1,bbb_2,bbb3,bbb4
ccc1,ccc_3,ccc3,ccc4
`;
//calling the npm package and save to records
const records = parse(input, {
columns: true,
skip_empty_lines: true
});
//map the output from csv-parse to the column
const column_two = records.map(rec => rec["col2"]);
更多推荐
node js,从csv文件中读取特定列,并将其转换为要在其他函数中使用的数组
发布评论