簡體   English   中英

在控制台中,我可以使用 JSON 中的項目,通過 console.log 他們不顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM