javascript - console.log(array) 打印期望值,但返回 undefined
问题描述
在过去的几天里,我做了一些研究,但找不到解决方案。我有这个函数,它读取一个 csv 文件,解析内容,分离数据并推送到两个单独的数组中。
function formObjects(file) {
fs.createReadStream(file)
.pipe(csv())
.on("data", (data) => results.push(data))
.on("end", () => {
results.forEach((item) => {
//these arrays will be an array of strings until parsed
if (item["Credit or Debit"] === "Credit") {
let obj = {
Description: item["Description"],
Amount: parseInt(item["Amount"]),
};
credits.push(obj);
}
if (item["Credit or Debit"] === "Debit") {
let obj = {
Description: item["Description"],
Amount: parseInt(item["Amount"]),
};
debits.push(obj);
}
});
//return debits, credits <--- returns undefined
console.log(debits);
console.log(credits);
});
}
formObjects("august.csv");
如上所述,我可以使用 console.log(debits) 并打印预期的对象数组,但如果我尝试返回该数组以在另一个函数中使用,它会返回未定义的。我尝试添加return credits.push(obj)
,return debits.push(obj)
但无济于事。希望有人能把我带到这里!谢谢!
使用 npm 模块 fs 和 csv-parser
解决方案
推荐阅读
- javascript - 如果文件不存在,即使设置了错误处理程序,jQuery ajax 也会出错
- eclipse - 条件时如何用Column重写这个Scala
- apache-camel - 从 Camel JMS 组件向 AMQ Artemis 发送消息时无法创建会话工厂 AMQ219007
- matlab - 边界超像素和邻接矩阵
- rust - 使用 Tokio 的 spawn_blocking 有什么问题?
- gcc - 在 c 中使用内联汇编检查 32 位整数数组中的最大值
- javascript - VS 代码,编写绘制图形的扩展
- discord - 如何创建一个只允许特定文本通道中的特定单词的不和谐机器人
- javascript - Angular 8,如何导航到公共页面,然后导航到我想要的页面?
- bash - 如何使用 Jq 帮助我制作具有特定值的“个人”json 文件?