gpt4 book ai didi

javascript - 使用 Papa Parse 框架将 CSV 文件转换为 JSON 时如何处理 "undefined"错误?

转载 作者:行者123 更新时间:2023-12-03 02:08:41 25 4
gpt4 key购买 nike

所以,这是我的 JS 代码:

function main(){
let myJSON = parseCSV();
console.log(myJSON);
let myCSV = transformCSV(myJSON);
console.log(myCSV);
}

function parseCSV(){
let parsedJSON;
let selectedFile = document.getElementById('fileIn').files[0];
Papa.parse(selectedFile, {
complete: function(results) {
parsedJSON = results.data;
console.log(results.data);
console.log(typeof(results.data));
}
});
return parsedJSON;
}

function transformCSV(JSONIn){
let csvOut = ""; // i will do something here later
let dCol = ""; // i will do something here later
let dRow = ""; // i will do something here later
for (let i = 0; i < JSONIn.length - 1; i++) {
// i will do something here later
}
return csvOut;
}

这是我的测试 html 页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src=".\transformCSV.js"></script>
<script src=".\node_modules\papaparse\papaparse.js"></script>
<input type="file" id="fileIn">
<input type="button" value="click!" onclick="main()">
</body>
</html>

当我尝试读取 myJSON 的长度时,我在 Chrome 控制台中收到错误消息:Uncaught TypeError: Cannot read property 'length' of undefined。为什么它是未定义的?它存在于控制台中!为什么会发生这种情况以及如何解决?如何将结果 myJSON 作为完全正常的静态 JSON 来使用?

最佳答案

您在complete回调函数中设置parsedJSON的值。这可能会在您的函数 parseCSV 返回了 parsedJSON 的未定义值之后调用。您需要使用回调或 promise 重写它。

parseCSV(function (myJSON) {
console.log(myJSON);
let myCSV = transformCSV(myJSON);
console.log(myCSV);
});

function parseCSV(callback){
let parsedJSON;
let selectedFile = document.getElementById('fileIn').files[0];
Papa.parse(selectedFile, {
complete: function(results) {
parsedJSON = results.data;
callback(parsedJSON);

}
});

}

关于javascript - 使用 Papa Parse 框架将 CSV 文件转换为 JSON 时如何处理 "undefined"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49676782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com