[英]In the console I can use items in JSON, through console.log they dont show
我將 CSV 文件解析為 JSON,然后出於其他奇怪的原因添加了我自己的標頭。 所以我有看起來像這樣的數據:
在我的 js 文件中,我有
console.log(jsonData.theData[0].symbol);
我得到:
admin.js:46 Uncaught TypeError: Cannot read property '0' of undefined
看起來我定義了 0,但是當我在瀏覽器控制台中輸入 js 文件中的相同命令時,我得到了很好的結果。
JSON.stringify(jsonData.theData[0])
導致同樣的錯誤。
知道為什么這不起作用嗎?
js文件如下:
var jsonData = {};
var theData = [];
document.getElementById("fileToRead").addEventListener("change",function() {
var input = document.getElementById("fileToRead");
for(var i = 0; i < input.files.length; i++){
var files = input.files[i];
Papa.parse(files, {
header:false,
dynamictyping:true,
complete:function(results){
var input = results.data;
input.forEach(function(input){
jsonData.theData = theData;
var singleEntry = {
"symbol" : input[0],
"date" : input[1],
"open" : input[2],
"high" : input[3],
"low" : input[4],
"close" : input[5],
"volume" : input[6]
}
jsonData.theData.push(singleEntry);
})
//console.log (jsonData);
// document.getElementById("editor").innerHTML = JSON.stringify(jsonData);
} // End Complete - Callback
}); // End PapaParse
} // End for loop
console.log(jsonData);
});
編輯.................
我向它添加了一些 console.logs 並收到了這個......
單擊小i
圖標。 這是一個競爭條件,您的對象沒有及時加載到您的console.log(jsonData.theData[0].symbol);
. 事后檢查員正在為您加載
當你打電話給你的
console.log(jsonData.theData[0].symbol);
您確定您的 jsonData 已加載嗎?
編輯(更新 JS 代碼后)
在你的 JS 代碼中,沒有console.log(jsonData.theData[0].symbol);
......我們無法看到和理解你的錯誤。
無論如何,正如我所說,即使你的console.log(jsonData);
在循環結束時進行,無論如何它可能是空的,因為您異步加載數據
由於文件解析是異步的,不要忘記回調。
所以你的 jsonData 可能是空的(所以,沒有加載)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.